Nginx + Tomcat + HTTPS SSL 支援(阿里雲http升級https)
阿新 • • 發佈:2018-12-12
一、安全證書下載
1.登入阿里雲選擇控制檯
2.進入控制檯後選擇產品與服務,選擇安全(雲盾)中的SSL證書(應用安全)
3.進入頁面後,點選購買證書
4.根據您的需要進行證書的購買,這裡我使用的是免費版的
5.購買證書成功後可以在管理控制檯我的訂單中進行檢視
6.點選下載,進入證書下載頁面,下載相應的證書,這裡我下載的是nginx版本
二、相關配置
1.簡單介紹
最終配置的方案是瀏覽器和 Nginx 之間走的 HTTPS 通訊,而 Nginx 到 Tomcat 通過 proxy_pass 走的是普通 HTTP 連線。
2.下面是詳細的配置(Nginx 埠 80/443,Tomcat 的埠 8081)
(1)Nginx 相關配置
upstream tomcat { server 127.0.0.1:8081; } #HTTPS server server { listen 443 ssl; server_name 升級域名; ssl on; # root html; # index index.html index.htm; ssl_certificate 214751828840732.pem 檔案目錄; ssl_certificate_key 214751828840732.key 檔案目錄; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_redirect off; proxy_connect_timeout 240; proxy_send_timeout 240; proxy_read_timeout 240; # note, there is not SSL here! plain HTTP is used proxy_pass http://tomcat; } }
注意:其中最為關鍵的就是 ssl_certificate 和 ssl_certificate_key 這兩項配置,其他的按正常配置。不過多了一個 proxy_set_header X-Forwarded-Proto https; 配置
(2)tomcat 相關配置
<Connector connectionTimeout="20000" port="8081" executor="tomcatThreadPool" acceptCount="600" protocol="org.apache.coyote.http11.Http11AprProtocol" redirectPort="8443" scheme="https" proxyPort="443"/>
上述的配置中沒有什麼特別的,但是特別特別注意的是必須有 proxyPort="443",這是整篇文章的關鍵
到這裡就配置結束 大功告成!!!!!