#apache #ssl #mod-wsgi
#apache #ssl #мод-wsgi
Вопрос:
Я запускаю mod_wsgi-express в Docker, используя образ Грэма. Я хочу, чтобы пользователи получали доступ к моему сайту через HTTPS.
Когда я запускаю сайт через SSL Labs, я вижу, что SSLv3 и TLS1.0 включены, как и шифры RC4. Я не хочу ничего из этого, поэтому мне нужен доступ к директивам SSLCipherSuite
и SSLProtocol
в httpd.conf
файле.
Но, глядя на параметры из 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
и внедрении его в изображение?
Ответ №1:
Попробуйте создать ssl.conf
файл и добавить в него свои директивы. Затем добавьте опцию:
--include-file ssl.conf
чтобы mod_wsgi-express
при запуске.
Они будут включены в конец сгенерированного httpd.conf
файла, который, я думаю, подходит для этих параметров.
Если не поможет, тогда перейдите к списку рассылки mod_wsgi, и мы сможем обсудить дальнейшее там. Возможно, мне придется добавить --ssl-options
опцию для включения файла фрагмента с данными SSL в нем, чтобы он был включен в нужное место в сгенерированном файле.
Комментарии:
1. Это сработало как чемпион. Мой файл ssl.conf отключен от mozilla.github.io/server-side-tls/ssl-config-generator и я внедряю его в изображение с помощью COPY.