mod_wsgi-express 在 Docker 中:SSLCipherSuite 和 SSLProtocol
mod_wsgi-express in Docker : SSLCipherSuite and SSLProtocol
我 运行宁 mod_wsgi-express 在 Docker 使用 Graham's image。我希望用户通过 HTTPS 访问我的网站。
当我通过 SSL Labs 运行 站点时,我可以看到 SSLv3 和 TLS1.0 已启用,RC4 密码也已启用。我不想要这些,所以我需要访问 httpd.conf
文件中的 SSLCipherSuite
和 SSLProtocol
指令。
但是,查看 mod_wsgi-express start-server --help
中的选项和生成文件中的 HTTPS 节,我看不到任何访问这些变量的方法。
<IfDefine MOD_WSGI_WITH_HTTPS>
<IfDefine MOD_WSGI_WITH_LISTENER_HOST>
Listen localhost:443
</IfDefine>
<IfDefine !MOD_WSGI_WITH_LISTENER_HOST>
Listen 443
</IfDefine>
<IfVersion < 2.4>
NameVirtualHost *:443
</IfVersion>
<VirtualHost _default_:443>
<Location />
<IfVersion < 2.4>
Order deny,allow
Deny from all
</IfVersion>
<IfVersion >= 2.4>
Require all denied
</IfVersion>
<IfDefine MOD_WSGI_ALLOW_LOCALHOST>
Allow from localhost
</IfDefine>
</Location>
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.key
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
</VirtualHost>
<VirtualHost *:443>
ServerName my-server.me
<IfDefine MOD_WSGI_SERVER_ALIAS>
ServerAlias None
</IfDefine>
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.ky
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
<IfDefine MOD_WSGI_HTTPS_ONLY>
<IfDefine MOD_WSGI_HSTS_POLICY>
Header set Strict-Transport-Security None
</IfDefine>
</IfDefine>
<IfDefine MOD_WSGI_SSL_ENVIRONMENT>
SSLOptions +StdEnvVars
</IfDefine>
</VirtualHost>
<IfDefine MOD_WSGI_REDIRECT_WWW>
<VirtualHost *:443>
ServerName unspecified
Redirect permanent / https://my-server.me:443/
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.key
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
</VirtualHost>
</IfDefine>
</IfDefine>
</IfDefine>
有没有办法访问我丢失的 SSLCipherSuite
和 SSLProtocol
,或者我是否一直在构建自己的 httpd.conf
并将其注入到图像中?
尝试创建一个 ssl.conf
文件并在其中添加您的指令。然后添加选项:
--include-file ssl.conf
当 运行. 时 到 mod_wsgi-express
这些将包含在生成的 httpd.conf
文件的末尾,我认为这些选项没问题。
如果没有帮助,请转到 mod_wsgi 邮件列表,我们可以在那里进一步讨论。我可能必须添加一个 --ssl-options
选项来包含一个包含 SSL 内容的片段文件,因此包含在生成文件中的正确位置。
我 运行宁 mod_wsgi-express 在 Docker 使用 Graham's image。我希望用户通过 HTTPS 访问我的网站。
当我通过 SSL Labs 运行 站点时,我可以看到 SSLv3 和 TLS1.0 已启用,RC4 密码也已启用。我不想要这些,所以我需要访问 httpd.conf
文件中的 SSLCipherSuite
和 SSLProtocol
指令。
但是,查看 mod_wsgi-express start-server --help
中的选项和生成文件中的 HTTPS 节,我看不到任何访问这些变量的方法。
<IfDefine MOD_WSGI_WITH_HTTPS>
<IfDefine MOD_WSGI_WITH_LISTENER_HOST>
Listen localhost:443
</IfDefine>
<IfDefine !MOD_WSGI_WITH_LISTENER_HOST>
Listen 443
</IfDefine>
<IfVersion < 2.4>
NameVirtualHost *:443
</IfVersion>
<VirtualHost _default_:443>
<Location />
<IfVersion < 2.4>
Order deny,allow
Deny from all
</IfVersion>
<IfVersion >= 2.4>
Require all denied
</IfVersion>
<IfDefine MOD_WSGI_ALLOW_LOCALHOST>
Allow from localhost
</IfDefine>
</Location>
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.key
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
</VirtualHost>
<VirtualHost *:443>
ServerName my-server.me
<IfDefine MOD_WSGI_SERVER_ALIAS>
ServerAlias None
</IfDefine>
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.ky
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
<IfDefine MOD_WSGI_HTTPS_ONLY>
<IfDefine MOD_WSGI_HSTS_POLICY>
Header set Strict-Transport-Security None
</IfDefine>
</IfDefine>
<IfDefine MOD_WSGI_SSL_ENVIRONMENT>
SSLOptions +StdEnvVars
</IfDefine>
</VirtualHost>
<IfDefine MOD_WSGI_REDIRECT_WWW>
<VirtualHost *:443>
ServerName unspecified
Redirect permanent / https://my-server.me:443/
SSLEngine On
SSLCertificateFile cert-file.crt
SSLCertificateKeyFile key-file.key
<IfDefine MOD_WSGI_VERIFY_CLIENT>
SSLCACertificateFile None
SSLVerifyClient none
</IfDefine>
<IfDefine MOD_WSGI_CERTIFICATE_CHAIN>
SSLCertificateChainFile None
</IfDefine>
</VirtualHost>
</IfDefine>
</IfDefine>
</IfDefine>
有没有办法访问我丢失的 SSLCipherSuite
和 SSLProtocol
,或者我是否一直在构建自己的 httpd.conf
并将其注入到图像中?
尝试创建一个 ssl.conf
文件并在其中添加您的指令。然后添加选项:
--include-file ssl.conf
当 运行. 时 到 mod_wsgi-express
这些将包含在生成的 httpd.conf
文件的末尾,我认为这些选项没问题。
如果没有帮助,请转到 mod_wsgi 邮件列表,我们可以在那里进一步讨论。我可能必须添加一个 --ssl-options
选项来包含一个包含 SSL 内容的片段文件,因此包含在生成文件中的正确位置。