如何覆盖nginx ssl协议?
问题描述:
我是web开发者,使用nginx 1.6.2 ver使用openssl 1.0.2h 我管理了很多域。 而且对安全性非常感兴趣。如何覆盖nginx ssl协议?
所以我默认的nginx ssl设置就在这里。 default.conf
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate /etc/nginx/SSL/***.crt;
ssl_certificate_key /etc/nginx/SSL/***.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location ~ {
root /etc/nginx/html;
index index.php;
return 470;
include /etc/nginx/sites-enabled/error_config;
}
}
,你可以看到,我用只有ssl_protocols的TLSv1,TLSv1.1,TLSv1.2工作 和我想的领域之一,getssltest.ga 只想TLSv 1.1使用& TLSv 1.2 但我试图以任何方式更改虚拟主机配置文件。 但是,只需添加'ssl_protocols TLSv1.1 TLSv1.2;'不验证。 就像上面这样。
server {
listen 443;
server_name getssltest.ga www.getssltest.ga;
ssl_protocols TLSv1.1 TLSv1.2;
ssl on;
ssl_certificate **;
ssl_certificate_key **;
include /etc/nginx/sites-enabled/ssl_config;
proxy_http_version 1.1;
我找不到方法。 (我可以在这里查看协议https://www.ssllabs.com/ssltest/analyze.html?d=getssltest.ga)
如何将ssl_protocol覆盖到我的虚拟主机之一?
Thx。
答
你可以看看它保存到文档中http://nginx.org/en/docs/http/configuring_https_servers.html,配置应该是怎么说:
server {
listen 443 ssl;
server_name getssltest.ga www.getssltest.ga;
ssl_certificate *;
ssl_certificate_key *;
ssl_protocols TLSv1.1 TLSv1.2;
...
}
这并不适用于虚拟主机! –
这是ssl的工作原理。 SSL首先创建连接,然后执行SNI。 Nginx会选择一个ssl设置(比如在默认的服务器配置中)来创建ssl连接。 http://stackoverflow.com/questions/27213607/different-tls-protocols-per-server-in-nginx –