Nginx的SSL配置優化 – HTTPS SSL 教程
Nginx的SSL配置優化 – HTTPS SSL 教程
一般網站使用的 SSL證書都是RSA證書,這種證書基本都是2048位的金鑰,但是證書金鑰交換金鑰必須要比證書金鑰更長才能安全,而預設的只有1024位,所以我們需要手動生成一個更強的金鑰。所以配置之前,如果沒有DH-key就需要做下面的步驟
有screen則跳過,沒則安裝
yum -y install screen11
生成4096位的DH-Key(證書金鑰交換金鑰)
screen -S DH openssl dhparam -out dhparam.pem 40961212
執行之後需要等很長時間,總之慢慢等,網路出現中斷,可以執行下面命令重新連線安裝視窗
screen -r DH11
熬過漫長的等待時間後,建議生成的dhparam.pem檔案最好跟SSL證書放在一起方便管理。
有了證書金鑰交換金鑰後,我們繼續配置,開啟網站所對應的Nginx的conf配置檔案
假設我的配置檔案是在 /usr/local/nginx/conf/vhost 的目錄
vim /usr/local/nginx/conf/vhost/www.linpx.com.conf11
配置如下,只包含了ssl的部分,未包含其他比較重要的配置,如快取、跳轉、防盜鏈和強制HTTPS等等
server { listen 443 ssl http2; add_header Strict-Transport-Security "max-age=6307200; includeSubdomains; preload"; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; ssl_certificate /usr/local/nginx/conf/vhost/sslkey/www.linpx.com.crt; ssl_certificate_key /usr/local/nginx/conf/vhost/sslkey/www.linpx.com.key; ssl_trusted_certificate /usr/local/nginx/conf/vhost/sslkey/chaine.pem; ssl_dhparam /usr/local/nginx/conf/vhost/sslkey/dhparam.pem; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_session_tickets on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s; ··· }12345678910111213141516171819202122232425262728293031321234567891011121314151617181920212223242526272829303132
各行解析:
server { listen 443 ssl http2;#使用HTTP/2,需要Nginx1.9.7以上版本add_header Strict-Transport-Security "max-age=6307200; includeSubdomains; preload";#開啟HSTS,並設定有效期為“6307200秒”(6個月),包括子域名(根據情況可刪掉),預載入到瀏覽器快取(根據情況可刪掉)add_header X-Frame-Options DENY;#禁止被嵌入框架add_header X-Content-Type-Options nosniff;#防止在IE9、Chrome和Safari中的MIME型別混淆攻擊ssl_certificate /usr/local/nginx/conf/vhost/sslkey/www.linpx.com.crt; ssl_certificate_key /usr/local/nginx/conf/vhost/sslkey/www.linpx.com.key;#SSL證書檔案位置ssl_trusted_certificate /usr/local/nginx/conf/vhost/sslkey/chaine.pem;#OCSP Stapling的證書位置ssl_dhparam /usr/local/nginx/conf/vhost/sslkey/dhparam.pem;#DH-Key交換金鑰檔案位置#SSL優化配置ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#只允許TLS協議ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;#加密套件,這裡用了CloudFlare's Internet facing SSL cipher configurationssl_prefer_server_ciphers on;#由伺服器協商最佳的加密演算法ssl_session_cache builtin:1000 shared:SSL:10m;#Session Cache,將Session快取到伺服器,這可能會佔用更多的伺服器資源ssl_session_tickets on;#開啟瀏覽器的Session Ticket快取ssl_session_timeout 10m; #SSL session過期時間ssl_stapling on; #OCSP Stapling開啟,OCSP是用於線上查詢證書吊銷情況的服務,使用OCSP Stapling能將證書有效狀態的資訊快取到伺服器,提高TLS握手速度ssl_stapling_verify on;#OCSP Stapling驗證開啟resolver 8.8.8.8 8.8.4.4 valid=300s;#用於查詢OCSP伺服器的DNSresolver_timeout 5s;#查詢域名超時時間··· }12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758591234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
配置完後請記得重啟Nginx!
CentOS 6.x:
service nginx restart11
CentOS 7.x:
systemctl restart nginx
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31483669/viewspace-2675352/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx配置ssl加密(單/雙向認證、部分https) – HTTPS SSL 教程Nginx加密HTTP
- Nginx使用SSL模組配置httpsNginxHTTP
- nginx docker容器配置https(ssl)NginxDockerHTTP
- nginx使用ssl模組配置HTTPS支援NginxHTTP
- Vesta 安裝SSL – HTTPS SSL 教程HTTP
- SSL證書安裝指引教程 – HTTPS SSL 教程HTTP
- NGINX配置SSL支援Nginx
- 伺服器配置ssl證書支援蘋果ATS方法 – HTTPS SSL 教程伺服器蘋果HTTP
- SSL證書格式轉換 – HTTPS SSL 教程HTTP
- SSL證書轉PEM格式 – HTTPS SSL 教程HTTP
- nginx配置SSL證書實現https服務NginxHTTP
- nginx配置ssl實現https訪問 小白文NginxHTTP
- HTTPS的SSL證書配置HTTP
- phpStudy安裝ssl證照 – HTTPS SSL 教程PHPHTTP
- SSL證書申請問題 – HTTPS SSL 教程HTTP
- Tomcat 安裝SSL證書 – HTTPS SSL 教程TomcatHTTP
- Nginx 教程(3):SSL 設定Nginx
- SSL基礎知識及Nginx/Tomcat配置SSLNginxTomcat
- 在Nginx下部署SSL證書並重定向至HTTPS的教程NginxHTTP
- Nginx+Tomcat Https SSL部署方案NginxTomcatHTTP
- Mac下配置Apache Httpd的Https/SSLMacApachehttpd
- 教你如何給 Discuz! X3.1/3.2 開啟https(SSL)支援! – HTTPS SSL 教程HTTP
- [HTTPS]SSL/TLSHTTPTLS
- HTTPS訪問:weblogic下配置SSLHTTPWeb
- Java Keytool 命令使用教程 – HTTPS SSL 教程JavaHTTP
- kafka ssl sasl_ssl 配置Kafka
- SSL:http與httpsHTTP
- Sahi (2) —— https/SSL配置(102 Tutorial)HTTP
- nginx開啟ssl並把http重定向到httpsNginxHTTP
- [python][nginx][https] Nginx 伺服器 SSL 證照安裝部署PythonNginxHTTP伺服器
- 加強 Nginx 的 SSL 安全Nginx
- SSL/TLS 握手優化詳解TLS優化
- 怎麼給網站配置SSL證書(https)網站HTTP
- Tomcat (1) —— Mac下配置Tomcat Https/SSLTomcatMacHTTP
- nginx+騰訊雲免費ssl證書+阿里雲ECS實現Https配置Nginx阿里HTTP
- 阿里雲伺服器apache配置SSL證書成功開啟Https的教程阿里伺服器ApacheHTTP
- 有關https的SSL加密方式HTTP加密
- 案例:配置apache和nginx的SSL加密傳輸協議ApacheNginx加密協議