Skip to content

Add HTTPS listen address flag #3123

Closed
@deansheather

Description

@deansheather

Right now we have the --address flag which sets the listen address for Coder. I propose we add a new flag --https-address (CODER_HTTPS_ADDRESS) and change the behavior of coderd to the following:

If neither flag is set or ONLY --address is set, and TLS certs ARE NOT specified:

  • Listen on HTTP at --address (or default)

If neither flag is set or ONLY --address is set, and TLS certs are specified:

  • Listen on HTTPS only at --address (or default)

If --https-address is set and --address is NOT:

  • Require that TLS certs are set or fatally exit
  • Listen on HTTPS only at --https-address

If BOTH --https-address and --address are set:

  • Require that TLS certs are set or fatally exit
  • Listen on HTTPS at --https-address
  • Listen on HTTP at --address

I believe this be backwards compatible by keeping the same behavior around --address on it's own, while only introducing the new behavior when --https-address is specified.

Activity

self-assigned this
on Jul 22, 2022
kylecarbs

kylecarbs commented on Jul 22, 2022

@kylecarbs
Member

What's the motivation for having both? It'd be nicer to have one, but if customers need both we'll obvs do it.

deansheather

deansheather commented on Jul 22, 2022

@deansheather
MemberAuthor

Well, if we don't support having two listen addresses then coder won't be very useful unless it's behind a reverse proxy that can serve both HTTP and HTTPS or redirect from HTTP to HTTPS. And at that point, there's no point using coder's in built HTTPS support because you could just do it from your reverse proxy...

deansheather

deansheather commented on Jul 22, 2022

@deansheather
MemberAuthor

After we add this flag I'd like to add a flag to redirect from HTTP to HTTPS, which means coder could be used entirely without a reverse proxy and behave sensibly.

ketang

ketang commented on Jul 22, 2022

@ketang
Contributor

Is there a situation where a customer would want to serve Coder on both unencrypted HTTP and encrypted HTTPS? I think if the latter is present, they should always redirect HTTP to HTTPS.

deansheather

deansheather commented on Jul 22, 2022

@deansheather
MemberAuthor

That makes sense @ketang but at the moment since coder can only listen on one or the other users are forced to do this with a reverse proxy, which makes the TLS options in coder useless since they'll be doing TLS termination at the reverse proxy. I don't mind changing this issue so if we listen on both we always do a HTTPS redirect from HTTP.

ketang

ketang commented on Jul 31, 2022

@ketang
Contributor

Why can Coder only listen on one?

deansheather

deansheather commented on Aug 1, 2022

@deansheather
MemberAuthor

Coder only listens on one right now since we only have one listen address flag. If you don't specify TLS certs then it's a HTTP server, otherwise it's a HTTPS server.

changed the title [-]feat: HTTPS listen address flag[/-] [+]Add HTTPS listen address flag[/+] on Aug 24, 2022
jsjoeio

jsjoeio commented on Sep 7, 2022

@jsjoeio
Contributor

Sounds like we're experiencing this with dev.coder.com - it doesn't automatically add HTTPS or redirect and therefore I see a broken page.
18708

10 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    apiArea: HTTP API

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Add HTTPS listen address flag · Issue #3123 · coder/coder