2016-12-14 76 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 –