如何为 nginx docker 实例指定特定的密码套件?

How does one specify a particular cipher suite for a nginx docker instance?

我是 运行 在 Google Compute Engine 上新建的 discourse docker 映像。我在 walk through and I get an A+ rating from ssllabs 之后使用 letsencrypt 将其转换为使用 https。但是,我使用的脚本代理不支持启用的两个 TLS 1.0 密码套件中的任何一个 [TLS_ECDHE_RSA_WITH_AES_128_CBC_SHATLS_ECDHE_RSA_WITH_AES_256_CBC_SHA],我想添加 TLS-DHE-RSA-WITH-AES-256-CBC-SHA,它受支持开源 rebol3 fork ren-c.

我已经从

修改了我的web.ssl.template.yml文件
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:\
ECDHE-RSA-AES256-SHA;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:\
ECDHE-RSA-AES256-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA;

并使用

重建应用程序
sudo ./launcher rebuild app

但这不会改变可用的 cipher_suites。

我现在想知道我是否必须直接更改 nginx.conf,而不是让话语构建脚本来做...

  1. mkdir -p containers/templates

  2. cp templates/web.ssl.template.yml containers/templates

  3. 对文件大惊小怪

  4. containers/templates/web.ssl.template.yml 添加到 app.yml 文件的 templates 部分

  5. 利润

正在更改 /var/discourse/templates/web.ssl.template.yml

中的行
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES128-SHA256$RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA;

ssl_ciphers 'HIGH:!aNULL:!MD5';

将支持的 TLS 1.0 套件更改为

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   256
TLS_RSA_WITH_AES_256_CBC_SHA (0x35) 256
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (0x84)    256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   ECDH secp384r1 (eq. 7680 bits RSA)   FS   128
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f) 128
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (0x41)

并且仍然给出 ssllabs 的 A+ 评级。