我可以使用指定密码列表https = =0,x.crt,x.key,<ciphers>
。文档在这里:http ://uwsgi-docs.readthedocs.org/en/latest/HTTPS.html#setting-ssl-tls-ciphers
但是还有一种方法可以指定允许哪些 SSL/TLS 协议?
我想禁用 SSLv2 和 SSLv3。
我可以使用指定密码列表https = =0,x.crt,x.key,<ciphers>
。文档在这里:http ://uwsgi-docs.readthedocs.org/en/latest/HTTPS.html#setting-ssl-tls-ciphers
但是还有一种方法可以指定允许哪些 SSL/TLS 协议?
我想禁用 SSLv2 和 SSLv3。
通过阅读
uwsgi
源代码,看起来 SSLv2 已自动禁用,并且可以使用"ssl-enable3"
配置选项禁用 SSLv3。可选的密码字符串虽然有用,但不能真正用于将 使用的 SSL/TLS 协议版本列入白名单(或禁用)uwsgi
,只能用于密码套件。要查看禁用 SSLv2 支持,我们从
uwsgi_opt_https
解析"https"
选项的函数开始。在解析证书、密钥、密码套件等之后,该函数调用uwsgi_ssl_new_server_context
.uwsgi_ssl_new_server_context
函数在这里定义。特别感兴趣的是默认 SSL 选项标志,其中包括SSL_OP_NO_SSLv2
. 而且,最有趣的是,我们看到也将SSL_OP_NO_SSLv3
使用选项标志(用于禁用 SSLv3 支持),但前提是此uwsgi.sslv3
变量设置为 false。怎么可以
uwsgi.sslv3
设置为假?为此,我们在这里"ssl-enable3"
看到您可以在uswgi
配置中设置一个选项:现在,对于奖励积分,您可能还想禁用 TLSv1,并将 TLSv1.1 和 TLSv1.2 列入白名单。为此,您必须执行上述操作并使用
"ssl-option"
配置选项,例如:我是怎么想出这个神奇的数字“67108864”的?该
"ssl-option"
选项采用数字,而不是字符串。因此,我们需要我们要设置的 OpenSSL 标志的名称,然后确定该标志的数值。所以首先我必须查看 OpenSSLSSL_CTX_set_options
文档以了解我想要SSL_OP_NO_TLSv1
标志的值。数值可在OpenSSL 源代码中找到:0x04000000U
. 但是uwsgi
想要一个整数值"ssl-option"
,而不是十六进制,因此:希望这可以帮助!
只是为了添加以前的答案。您必须在 https-socket 选项之前在 uwsgi 配置中指定 ssl-option。否则你的 ssl 配置不会产生任何效果。