
我剛剛為我的網站購買了 SSL 證書,並嘗試讓它與我安裝的 nginx 一起工作,但連接後瀏覽器拒絕與網站連接。這是Vhost的相關部分:
server {
listen 80;
listen [::]:80;
server_name mysite.be www.mysite.be;
return 301 https://mysite.be$request_uri;
}
server {
listen 443 ssl spdy;
listen [::]:443 ssl spdy;
ssl_certificate /etc/nginx/ssl/mysite.be/www.mysite.be.pem;
ssl_certificate_key /etc/nginx/ssl/mysite.be/mysite.be.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don.t use SSLv3 because of the POODLE attack
# Enable OCSP Stapling, point to certificate chain
ssl_stapling on;
ssl_stapling_verify on;
# Tell the browser we do SPDY
# add_header Alternate-Protocol 443:npn-spdy/2;
server_name mysite *.mysite.be;
[.....]
您在上面看到的配置
nginx.conf 部分:
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.4.4 8.8.8.8 valid=300s;
resolver_timeout 10s;
ssl_session_cache shared:SSL:32m;
ssl_buffer_size 8k;
ssl_session_timeout 10m;
我不知道我做錯了什麼,我遵循了很多教程才達到這一點,但它不起作用。
答案1
第一個伺服器設定是重新導向到 HTTPS(第二個設定)。
在第二個伺服器配置中,SPDY模組預設為未內置,應透過--with-http_spdy_module
配置參數啟用。請注意,為了在同一連接埠上同時接受 HTTPS 和 SPDY 連接,使用的 OpenSSL 庫應支援「Next Protocol Negotiation」TLS 擴展,自 OpenSSL 版本 1.0.1 起可用(參考這裡)。
我會用這種方式寫第二個伺服器設定(PoC):
server {
listen 443;
server_name .mysite.be;
ssl on;
ssl_certificate /etc/nginx/ssl/mysite.be/www.mysite.be.pem;
ssl_certificate_key /etc/nginx/ssl/mysite.be/mysite.be.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
root [YOUR_ROOT_DIR]
...
}
在 中,nginx.conf
我將省略所有有關 SSL 的內容並保留預設值。