本文檔指導您如何在 Nginx 服務器中安裝 SSL 證書。
說明:
- 本文檔以證書名稱
www.domain.com為例。- Nginx 版本以
nginx/1.16.0為例。- 當前服務器的操作系統為 CentOS 7,由於操作系統的版本不同,詳細操作步驟略有區別。
前提條件
- 已准備文件遠程拷貝軟件,例如 WinSCP(建議從官方網站獲取最新版本)。
- 已准備遠程登錄工具,例如 PuTTY 或者 Xshell(建議從官方網站獲取最新版本)。
- 已在當前服務器中安裝配置 Nginx 服務。
- 安裝 SSL 證書前需准備的數據如下:
名稱 說明 服務器的 IP 地址 服務器的 IP 地址,用於 PC 連接到服務器。 用戶名 登錄服務器的用戶名。 密碼 登錄服務器的密碼。
操作步驟
證書安裝
- 已在 SSL 證書管理控制台 中下載並解壓縮
www.domain.com證書文件包到本地目錄。
解壓縮后,可獲得相關類型的證書文件。其中包含 Nginx 文件夾和 CSR 文件:- 文件夾名稱:Nginx
- 文件夾內容:
1_www.domain.com_bundle.crt證書文件2_www.domain.com.key私鑰文件
- CSR 文件內容:
www.domain.com.csr文件說明:CSR 文件是申請證書時由您上傳或系統在線生成的,提供給 CA 機構。安裝時可忽略該文件。
- 使用 “WinSCP”(即本地與遠程計算機間的復制文件工具)登錄 Nginx 服務器。
- 將已獲取到的
1_www.domain.com_bundle.crt證書文件和2_www.domain.com.key私鑰文件從本地目錄拷貝到 Nginx 服務器的/usr/local/nginx/conf目錄下。說明:若無
/usr/local/nginx/conf目錄,可通過執行mkdir /usr/local/nginx/conf命令行創建。 - 遠程登錄 Nginx 服務器。例如,使用 “PuTTY” 工具 登錄。
- 編輯 Nginx 根目錄下的
conf/nginx.conf文件。修改內容如下:說明:- 此操作可通過執行
vim /usr/local/nginx/conf/nginx.conf命令行編輯該文件。 - 由於版本問題,配置文件可能存在不同的寫法。例如:使用
listen 443 ssl代替listen 443和ssl on。
server { #SSL 訪問端口號為 443 listen 443; #填寫綁定證書的域名 server_name www.domain.com; #啟用 SSL 功能 ssl on; #證書文件名稱 ssl_certificate 1_www.domain.com_bundle.crt; #私鑰文件名稱 ssl_certificate_key 2_www.domain.com.key; ssl_session_timeout 5m; #請按照這個協議配置 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #請按照這個套件配置,配置加密套件,寫法遵循 openssl 標准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。 root /var/www/www.domain.com; index index.html index.htm; } } - 此操作可通過執行
- 在 Nginx 根目錄下,通過執行以下命令驗證配置文件問題。
./sbin/nginx -t- 若存在,請您重新配置或者根據提示修改存在問題。
- 若不存在,請執行 步驟7。
- 重啟 Nginx,即可使用
https://www.domain.com進行訪問。
HTTP 自動跳轉 HTTPS 的安全配置(可選)
若您不了解通過 HTTPS 訪問網站的方式,可以通過配置服務器,讓其自動將 HTTP 的請求重定向到 HTTPS。您可以通過以下操作設置:
- 根據實際需求,選擇以下配置方式:
- 在頁面中添加 JS 腳本。
- 在后端程序中添加重定向。
- 通過 Web 服務器實現跳轉。
- Nginx 支持 rewrite 功能。若您在編譯時沒有去掉 pcre,您可在 HTTP 的 server 中增加
rewrite ^(.*) https://$host$1 permanent;,即可將默認80端口的請求重定向為 HTTPS。修改如下內容:server { listen 443; #填寫綁定證書的域名 server_name www.domain.com; ssl on; #網站主頁路徑。此路徑僅供參考,具體請您按照實際目錄操作。 root /var/www/www.domain.com; index index.html index.htm; #證書文件名稱 ssl_certificate 1_www.domain.com_bundle.crt; #私鑰文件名稱 ssl_certificate_key 2_www.domain.com.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 / { index index.html index.htm; } } server { listen 80; #填寫綁定證書的域名 server_name www.domain.com; #把http的域名請求轉成https rewrite ^(.*)$ https://$host$1 permanent; }說明:未添加注釋的配置語句,您按照上述配置即可。
- 若修改完成,重啟 Nginx。即可使用
http://www.domain.com進行訪問。
