一、操作場景本文檔指導(dǎo)您如何在 Nginx 服務(wù)器中安裝 SSL 證書。
前提條件已準(zhǔn)備遠(yuǎn)程登錄工具,例如 PuTTY 或者 Xshell(建議從官方網(wǎng)站獲取最新版本)?;蛴衅渌h(yuǎn)程登陸工具也可。
已在當(dāng)前服務(wù)器中安裝配置含有 http_ssl_module 模塊的 Nginx 服務(wù)。
安裝 SSL 證書前需準(zhǔn)備的數(shù)據(jù)如下:(需要有網(wǎng)站服務(wù)器登陸權(quán)限)
二、操作步驟1.下載獲取證書證書下載類型選擇 Nginx,保存證書文件包到本地目錄。 解壓縮后,可獲得相關(guān)類型的證書文件。
test.com_cert_chain.pem 證書文件(含證書鏈)
test.com_key.key 私鑰文件
2.部署證書① 使用 Xshell等遠(yuǎn)程工具登錄服務(wù)器,上傳證書相關(guān)文件到服務(wù)器,保存至相關(guān)目錄。
② 編輯 Nginx 根目錄下的 nginx.conf 文件。修改內(nèi)容如下:
說明:如找不到以下內(nèi)容,可執(zhí)行命令 nginx -t ,找到nginx的配置文件路徑。如下圖示例:
③ 通過執(zhí)行 vim /etc/nginx/nginx.conf 命令行編輯該文件。
由于版本問題,配置文件可能存在不同的寫法。例如:Nginx 版本為 nginx/1.15.0 以上請使用 listen 443 ssl 代替 listen 443 和 ssl on。
server { #SSL 默認(rèn)訪問端口號為 443 listen 443 ssl; #請?zhí)顚懡壎ㄗC書的域名 server_name test.com; #請?zhí)顚懽C書文件的相對路徑或絕對路徑 ssl_certificate test.com_cert_chain.pem; #請?zhí)顚懰借€文件的相對路徑或絕對路徑 ssl_certificate_key test.com_key.key; ssl_session_timeout 5m; #請按照以下協(xié)議配置 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { #網(wǎng)站主頁路徑。此路徑僅供參考,具體請您按照實(shí)際目錄操作。 #例如,您的網(wǎng)站主頁在 Nginx 服務(wù)器的 /etc/www 目錄下,則請修改 root 后面的 html 為 /etc/www。 root html; index index.html index.htm; } }④ 通過執(zhí)行以下命令驗(yàn)證配置文件問題。
nginx -t若存在,請您重新配置或者根據(jù)提示修改存在問題。
⑤ 通過執(zhí)行以下命令重載 Nginx。
nginx -s reload⑥ 重載成功,即可使用 https://yourdomain 進(jìn)行訪問(以實(shí)際網(wǎng)站地址訪問)
如果瀏覽器地址欄顯示安全標(biāo)識,則說明證書安裝成功。如下圖所示:
附:HTTP 自動(dòng)跳轉(zhuǎn) HTTPS 的安全配置(可選)
如果您需要將 HTTP 請求自動(dòng)重定向到 HTTPS,您可以通過以下操作設(shè)置:
① 根據(jù)實(shí)際需求,選擇以下配置方式:
· 在頁面中添加 JS 腳本。
· 在后端程序中添加重定向。
· 通過 Web 服務(wù)器實(shí)現(xiàn)跳轉(zhuǎn)。
Nginx 支持 rewrite 功能。若您在編譯時(shí)沒有去掉 pcre,您可在 HTTP 的 server 中增加
return 301 https://$host$request_uri; ,即可將默認(rèn)80端口的請求重定向?yàn)?HTTPS。
修改如下內(nèi)容:
說明:未添加注釋的配置語句,您按照下述配置即可。
由于版本問題,配置文件可能存在不同的寫法。例如:Nginx 版本為 nginx/1.15.0 以上請使用 listen 443 ssl 代替 listen 443 和 ssl on。
server { #SSL 默認(rèn)訪問端口號為 443 listen 443 ssl; #請?zhí)顚懡壎ㄗC書的域名 server_name test.com; #請?zhí)顚懽C書文件的相對路徑或絕對路徑 ssl_certificate test.com_cert_chain.pem; #請?zhí)顚懰借€文件的相對路徑或絕對路徑 ssl_certificate_key test.com_key.key; ssl_session_timeout 5m; #請按照以下套件配置,配置加密套件,寫法遵循 openssl 標(biāo)準(zhǔn)。 ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 #請按照以下協(xié)議配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { #網(wǎng)站主頁路徑。此路徑僅供參考,具體請您按照實(shí)際目錄操作。 #例如,您的網(wǎng)站主頁在 Nginx 服務(wù)器的 /etc/www 目錄下,則請修改 root 后面的 html 為 /etc/www。 root html; index index.html index.htm; } } server { listen 80; #請?zhí)顚懡壎ㄗC書的域名 server_name test.com; #把http的域名請求轉(zhuǎn)成https return 301 https://$host$request_uri; }② 通過執(zhí)行以下命令驗(yàn)證配置文件問題。
nginx -t若存在,請您重新配置或者根據(jù)提示修改存在問題。
③ 通過執(zhí)行以下命令重載 Nginx。
ginx -s reload④ 重載成功,即可使用 https://yourdomain進(jìn)行訪問(以實(shí)際網(wǎng)站地址訪問)
如果瀏覽器地址欄顯示安全標(biāo)識,則說明證書安裝成功。如下圖所示:
