在Nginx服務器上安裝SSL證書
發布時間: 2022/01/04
本章節介紹如何將下載的證書安裝到Nginx服務器上。安裝好證書後,您的Web服務器將能支持SSL通信。
如果證書安裝過程中遇到問題,提供SSL證書配置優化服務,可實現雲上全品牌SSL證書配置,工程師一對一服務。請直接單擊 一對一谘詢進行購買,購買服務後,聯係工程師進行處理。
前提條件
- “證書狀態”為 “已簽發”。
- 已下載SSL證書,具體操作請參見下載證書。
約束條件
- 證書安裝前,務必在安裝SSL證書的服務器上開啟 “443”端口,同時在組增加 “443”端口,避免安裝後仍然無法啟用HTTPS。
- 如果一個域名有多個服務器,則每一個服務器上都要部署。
- 待安裝證書的服務器上需要運行的域名,必須與證書的域名一一對應,即購買的是哪個域名的證書,則用於哪個域名。否則安裝部署後,瀏覽器將提示不。
操作步驟
在Nginx服務器上安裝SSL證書的流程如下所示:
①獲取文件 → ②創建目錄 → ③修改配置文件 → ④驗證配置是否正確 → ⑤重啟Nginx → ⑥效果驗證
步驟一:獲取文件
安裝證書前,需要獲取證書文件和密碼文件,請根據申請證書時選擇的 “證書請求文件”生成方式來選擇操作步驟:
- 如果申請證書時, “證書請求文件”選擇 “係統生成CSR”。
- 如果申請證書時, “證書請求文件”選擇 “自己生成CSR”。
具體操作如下:
- 係統生成CSR
- 在本地解壓已下載的證書文件。
下載的文件包含了 “Apache”、 “IIS”、 “Nginx”、 “Tomcat”4個文件夾和1個 “domain.csr”文件,如所示。圖1本地解壓SSL證書
- 從 “ 證書ID_ 證書綁定的域名_Nginx”文件夾內獲得證書文件 “ 證書ID_ 證書綁定的域名_server.crt”和私鑰文件 “ 證書ID_ 證書綁定的域名_server.key”。
- “ 證書ID_ 證書綁定的域名_server.crt”文件包括兩段證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”,分別為服務器證書和中級CA。
- “ 證書ID_ 證書綁定的域名_server.key”文件包括**私鑰代碼 “-----BEGIN RSA PRIVATE KEY-----”和 “-----END RSA PRIVATE KEY-----”。
- 在本地解壓已下載的證書文件。
- 自己生成CSR
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
“ 證書ID_ 證書綁定的域名_server.pem”文件包括兩段證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”,分別為服務器證書和中級CA證書。
- 將 “ 證書ID_ 證書綁定的域名_server.pem”的後綴名修改為“crt”,即 “server.crt”。
- 將 “server.crt”和生成CSR時的私鑰 “server.key”放在任意文件夾內。
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
步驟二:創建目錄
在Nginx的安裝目錄下創建 “cert”目錄,並且將 “server.key”和 “server.crt”拷貝到 “cert”目錄下。
步驟三:修改配置文件
配置Nginx中 “conf”目錄下的 “nginx.conf”文件。
- 找到如下配置內容:
#server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # locations / { # root html; # index index.html index.htm; # } #}
- 刪除行開始的配置語句注釋符號#。
server { listen 443 ssl; server_name localhost; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; locations / { root html; index index.html index.htm; } }
- 修改如下參數,具體參數修改說明如表1所示。
ssl_certificate cert/server.crt; ssl_certificate_key cert/server.key;
完整的配置如下,其餘參數根據實際情況修改:
server { listen 443 ssl; #配置HTTPS的默認訪問端口為443。 如果在此處未配置HTTPS的默認訪問端口,可能會導致Nginx無法啟動。 server_namewww.domain.com; #修改為您證書綁定的域名。 ssl_certificatecert/server.crt; #替換成您的證書文件的路徑。 ssl_certificate_keycert/server.key; #替換成您的私鑰文件的路徑。 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; #加密套件。 ssl_prefer_server_ciphers on; locations / { root html; #站點目錄。 index index.html index.htm; #添加屬性。 } }
須知:不要直接拷貝所有配置,參數中 “ssl”開頭的屬性與證書配置有直接關係,其它參數請根據自己的實際情況修改。
表1參數說明 參數
參數說明
listen
SSL訪問端口號,設置為 “443”。
配置HTTPS的默認訪問端口為443。如果未配置HTTPS的默認訪問端口,可能會導致Nginx無法啟動。
server_name
證書綁定的域名。示例:www.domain.com
ssl_certificate
證書文件 “server.crt”。
設置為 “server.crt”文件的路徑,且路徑中不能包含中文字符,例如 “cert/server.crt”。
ssl_certificate_key
私鑰文件 “server.key”。
設置為 “server.key”的路徑,且路徑中不能包含中文字符,例如 “cert/server.key”。
- 修改完成後保存配置文件。
步驟四:驗證配置是否正確
進入Nginx執行目錄下,執行以下命令:
sbin/nginx -t
nginx.conf syntax is ok nginx.conf test is successful
步驟五:重啟Nginx
執行以下命令,重啟Nginx,使配置生效。
cd /usr/local/nginx/sbin
./nginx -s reload
效果驗證
部署成功後,可在瀏覽器的地址欄中輸入 “http://域名”,按 “Enter”。
如果瀏覽器地址欄顯示鎖標識,則說明證書安裝成功。