跳至主要内容

Nginx 伺服器安裝 SSL 證書

您可透過將 SSL 證書安裝到 Nginx 伺服器,讓 Nginx 伺服器支援 HTTPS 安全存取。本文介紹如何在 Nginx 伺服器安裝 SSL 證書。

說明

本文件 Nginx 版本以 nginx/1.18.0 為例。 安裝前請確認 443 連接埠未被佔用,若 443 連接埠已在使用中,請於安裝證書時綁定其他連接埠。

取得證書

  1. 我方為您簽發證書後,將會核發壓縮格式(.zip)的證書檔案,壓縮包內有四個資料夾,分別對應四種證書格式:Tomcat、Nginx、IIS、Apache;Nginx 伺服器需使用 Nginx 資料夾內的證書。
  2. Nginx 資料夾中將包含兩個檔案:
  • domain_com_integrated.crt 證書檔案
  • domain_com.key 私鑰檔案

安裝 SSL 證書

  1. 將已取得的 domain_com_integrated.crt 證書檔案、domain_com.key 私鑰檔案從本機目錄複製到 Nginx 伺服器的 /etc/nginx/ssl 目錄下。
  • /etc/nginx/ssl 目錄不存在,可透過 mkdir -p /etc/nginx/ssl 指令建立
  • 不同安裝方式之間的目錄位置可能存在差異,請以實際情況為準。
  1. 編輯 Nginx 根目錄下的 nginx.conf 檔案。修改內容如下:
nginx.conf
server {
listen 443 ssl;
#填写自己的域名,多个域名用空格隔开
server_name racent.com;

#填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;

#填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}

注意

由於版本差異,設定檔可能會有不同的寫法。例如:Nginx 版本為 nginx/1.15.0 以下,請使用 listen 443ssl on 取代 listen 443 ssl

修改完成後儲存設定檔,並執行以下指令:

nginx -t         #验证配置文件是否正确
nginx -s reload #重载 Nginx

測試 SSL 證書

在瀏覽器網址列輸入已綁定 SSL 證書的網域名稱,測試您的 SSL 證書是否安裝成功。若安裝成功,瀏覽器網址列將會顯示安全鎖圖示,點擊即可查看證書資訊。

SSL 證書效果

HTTP 自動跳轉 HTTPS 的安全設定(選用)

若您需要將 HTTP 請求自動重新導向至 HTTPS,可透過下列步驟進行設定:

  1. 使用 Nginx 重新導向功能,於 HTTP 的 server 中加入 return 301 https://$host$request_uri;,即可將 HTTP 請求重新導向為 HTTPS。請修改下列內容:
server {
listen 80;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}

  1. 重新啟動 Nginx 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉 HTTPS