Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added template prototype for endusers using TLS 1.2 & 1.3, multiple domains or Let's Encrypt. #263

Open
wants to merge 3 commits into
base: development
Choose a base branch
from

Conversation

g7morris
Copy link
Collaborator

@g7morris g7morris commented Jun 1, 2022

Added template prototype for endusers using TLS 1.2 & 1.3, multiple domains or Let's Encrypt.

@g7morris g7morris requested a review from DonRichards June 1, 2022 13:33
tls.yml Outdated
@@ -1,4 +1,19 @@
tls:
# For TLS 1.2+ and multiple domains and ssls
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DonRichards I would think we would want to use these as the default options for isle-dc, to encourage best practices.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I believe so.... assuming that this won't break existing sites... Also, this would validate any local security audits for TLS. TLS 1.0 was being phased out as early as 2018 and as of last year, no one really supports 1.0 or 1.1 anymore. I think we should drop any reference to 1.0 and imply that 1.2+ is all that should be referenced. Microsoft stopped supporting both across all platforms from I can see.

tls.yml Outdated
@@ -7,3 +22,15 @@ tls:
certificates:
- certFile: /etc/ssl/traefik/cert.pem
keyFile: /etc/ssl/traefik/privkey.pem
# Uncomment and edit accordingly for remote certs - commercial prod & staging example.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these are good, so people know this is all they need to change, but probably should put a note that they need to be put into the certs directory.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though, I wonder if this could be set via an environmental variable in .env? The only reason I am thinking this, is this is a file in SCM, so not something that one would expect to have to edit for localized configuration.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call @misilot I updated the comment to direct folks to put files there.

tls.yml Outdated
# Uncomment and edit accordingly for remote certs - commercial prod & staging example.
#- certFile: /etc/ssl/traefik/commercial_wildcard.crt
# keyFile: /etc/ssl/traefik/commercial_wildcard.key
# Uncomment and update docker-compose traefik labels accordingly with the resolver name e.g. myresolver
Copy link
Contributor

@misilot misilot Jun 1, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, we already have https://github.com/Islandora-Devops/isle-dc/blob/development/docker-compose.acme.yml that can be turned on and off via the .env file. So not sure if we want to include this here since it would add in the configuration in two different places.

This is in reference to the certificatesResolvers: section (incase line numbers change)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can remove if that is the call.

@misilot
Copy link
Contributor

misilot commented Jun 1, 2022

I tested with

tls:
  options:
    default:
      minVersion: VersionTLS12
      cipherSuites:
        # TLS 1.0 - 1.2 cipher suites
        - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
        - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

It only offered TLS1.2 and TLS1.3, and received an "A".

@benglis
Copy link

benglis commented Jun 2, 2022

I have tested this, and was successful in removing TLS1 and TLS1.1 from use. I was also able to get an "A" rating from ssllabs using this configuration.

@DonRichards
Copy link
Member

Instead of code comments can we have Tom's example added as code to test?

@benglis
Copy link

benglis commented Jun 7, 2022

I had tested this config on a running system, however, using this configuration with the make local-install-profile fails to curl the last few items (Homepage and Browse Collections pages) that are the last step of the setup...

curl: (35) error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
make: *** [Makefile:385: local-install-profile] Error 35

@DonRichards
Copy link
Member

@g7morris Would you mind resolving the conflict?

@g7morris
Copy link
Collaborator Author

@DonRichards I think I've fixed it as requested. Could you review again please?

@g7morris
Copy link
Collaborator Author

I'm unclear at this point what of my original PR should be used?

@DonRichards & @misilot What would you suggest?

@marc1aj
Copy link

marc1aj commented Mar 10, 2023

I add this code to traefik-tls.yml:

tls:
options:
default:
minVersion: VersionTLS12
cipherSuites:
# TLS 1.0 - 1.2 cipher suites
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

I then ran a make build and was successful in disabling TLS1 and TLS1.1. I also received an A rating from SSLLabs. I have not seen any adverse effects so far.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants