Nginx配置https站點
Nginx配置HTTPS
最近配置了現網網站的HTTPS
,簡單記錄一下配置過程。
先交代一下我的服務部署環境:Nginx
監聽80
埠,轉發到Tomcat
的8080
埠;伺服器使用的是阿里雲的ECS
,作業系統是Windows Server 2012
;CA證書
也是在阿里雲的CA證書服務上面申請的免費證書。
1. 申請CA證書
首先去購買CA證書。一般各大雲服務提供商都會有此類證書服務,根據公司和業務需求,可以自己選擇免費或者付費的證書。我選擇的是Symantec 賽門鐵克
的免費型DV SSL
,此類證書一個證書對應一個域名,如果涉及到二級域名需要另外申請一個二級域名的CA證書。阿里雲上面的證書購買過程比較簡單,需要注意的兩個地方:1.要對域名進行驗證;2.CSR
系統生成CSR
,自己生成CSR稍微麻煩一點。證書購買成功後補全好自己的域名即可。2. Nginx配置
CA證書稽核通過後,將證書下載到本地,會得到一個zip包,裡面有
xxx.key
和xxx.pem
兩個檔案。1) 在
Nginx
的安裝目錄下建立cert
目錄,並將xxx.key
和xxx.pem
拷貝到該目錄中。注意:如果是自己生成的CSR
檔案,應該只有一個xxx.key
檔案,將該檔案拷貝進去就可以了。2) 開啟
conf
目錄中的nginx.conf
443
埠監聽配置。Nginx預設配置是將443埠的監聽配置註釋掉了的,如下:
# HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.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; # location / { # # #} #}
將註釋開啟,並對其中部分內容進行修改,修改後如下:
server {
listen 443;
server_name your-domain-name;
ssl on;
root html;
index index.html index.htm;
ssl_certificate cert/214293826510663.pem;
ssl_certificate_key cert/214293826510663.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 / {
root html;
index index.html index.htm;
}
}
3) 修改配置並儲存後,Nginx安裝目錄執行nginx.exe -s reload
命令可重啟Nginx使配置生效。
4) 通過https:\\xxxx.com
方式訪問你的網站,如果能夠正常訪問,瀏覽器左邊出現綠色的標記或者出現鎖的標記那就成功了。
幾點注意事項:
1. 如果HTTPS方式訪問網站出現無響應的情況,可以看看自己的伺服器防火牆配置
,是不是需要將443
埠加到例外中去;
2. 注意自己xxx.pem
和xxx.key
的存放路徑,區分相對路徑和決定路徑使用方式;
3. 通過Nginx
安裝目錄下的logs
資料夾中的access.log
和error.log
日誌檔案來進行排錯;
4. 同一個Nginx
可以配置多個HTTPS
的域名,只需要將上面443
埠的監聽配置複製一份加到配置檔案中,然後修改好相應的server_name
、xxx.pem
和xxx.key
檔案路徑即可。
補充一點配置:
如果Nginx
配置了HTTPS
,那背後的Tomcat
就沒有必要再進行配置了,另外,為了相容原來80
埠的HTTP
方式的訪問,可以將80埠的訪問請求全部轉發到443埠上,增加配置如下:
server {
listen 80;
server_name your-domain.com;
location = / {
rewrite ^(.*) https://your-domain.com/$1 permanent;
}
location / {
rewrite ^(.*) https://your-domain.com/$1 permanent;
}
}
--------------------- 本文來自 肖老闆 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/cloume/article/details/78252319?utm_source=copy