2016-12-14 54 views
0

我是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。

回答

0

你可以看看它保存到文档中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; 
    ... 
} 
+0

这并不适用于虚拟主机! –

+0

这是ssl的工作原理。 SSL首先创建连接,然后执行SNI。 Nginx会选择一个ssl设置(比如在默认的服务器配置中)来创建ssl连接。 http://stackoverflow.com/questions/27213607/different-tls-protocols-per-server-in-nginx –