mod_wsgi-экспресс в Docker: SSLCipherSuite и SSLProtocol

#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.