1. 程式人生 > >Nginx + Tomcat + HTTPS SSL 支援(阿里雲http升級https)

Nginx + Tomcat + HTTPS SSL 支援(阿里雲http升級https)

一、安全證書下載

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",這是整篇文章的關鍵

到這裡就配置結束 大功告成!!!!!