色大成网站www网站|把J放进B里直播|没带罩子让C了一节课时|97ai蜜桃小说及图片|国产搡BBBB搡BBBB|迈开腿开扑克又疼又叫的视频|久久久久精品男人的天堂

×

Nginx 配置 SSL 證書:5分鐘搞定,再也不怕綠鎖變紅叉

分類:互聯(lián)網(wǎng)熱點 編輯:做網(wǎng)站 瀏覽量:210
2026-05-22 18:10:25
【導(dǎo)讀】Nginx 配置 SSL 證書的本質(zhì),是讓加密通道與服務(wù)進程達成一次安靜握手——不驚擾現(xiàn)有連接,不打斷用戶訪問,更不能讓瀏覽器突然彈出「您的連接不是私密連接」。

動手前必須確認的三件事
別急著改配置,先看這三項是否成立:

- OpenSSL 版本 ≥ 1.1.1f(低于此版本無法支持TLSv1.3及ALPN擴展);
- Nginx 編譯時已啟用 --with-http_ssl_module(執(zhí)行 nginx -V 查看輸出中是否有該項);
- 待部署的私鑰文件權(quán)限為 400(chmod 400 domain.key),且屬主為 nginx worker 進程運行用戶(通常是 www-data 或 nginx)。
任一條件不滿足,sudo nginx -t 可能通過,但 systemctl reload nginx 會悄無聲息失敗,worker 進程仍用舊配置跑著。

正確組裝你的證書鏈(90%的問題出在這)
你收到的證書包通常含 three files:

- domain.crt :站點主體證書;
- ca-bundle.pem 或 chain.pem :中間證書鏈;
- domain.key :私鑰(如自行生成則已有)。
?? 錯誤示范:
? 直接把 root CA 也放進 chain.pem → 導(dǎo)致 iOS Safari 報 CERT_HAS_EXPIRED;
? 漏掉二級中間證書 → Chrome DevTools Security 標(biāo)簽頁顯示“Incomplete Certificate Chain”;
? CRT 和 KEY 文件編碼格式混用(ANSI vs UTF-8 BOM)→ Nginx 啟動報 unknown directive “ssl_certificate”。

? 正確做法:
cat domain.crt ca-bundle.pem > /etc/nginx/ssl/fullchain.pem
并用 openssl x509 -in fullchain.pem -text -noout | grep 'Issuer:' 確認輸出恰好兩行(不含根)。

Nginx 配置 SSL 證書的標(biāo)準(zhǔn)五步法
這是經(jīng)千次生產(chǎn)驗證過的最小可行路徑:

備份原 conf 塊與證書文件(推薦帶日期戳:cp ssl.conf ssl.conf.bak.$(date +%Y%m%d));
將新的 domain.key 放入 /etc/nginx/ssl/private/,設(shè)置權(quán)限 chmod 400;
合成完整證書鏈:cat domain.crt ca-bundle.pem > /etc/nginx/ssl/fullchain.pem;
修改 server {} 區(qū)塊內(nèi)的 ssl_certificate 和 ssl_certificate_key 指向新路徑;
執(zhí)行 sudo nginx -t && sudo systemctl reload nginx(不用 restart!)。
其中第5步最關(guān)鍵:“reload”只會平滑重啟 worker 進程,不影響現(xiàn)有 TCP 連接;而“restart”會導(dǎo)致毫秒級請求丟棄,電商網(wǎng)站高峰期慎用。

常見故障速查表
如果瀏覽器提示 NET::ERR_CERT_AUTHORITY_INVALID 或 curl 返回 Peer's Certificate issuer is not recognized,請按順序排查:

- fullchain.pem 是否漏掉中間證書?→ 使用 https://decoder.link/certchecker 在線解析查看 Issuer Chain 層級;
- 私鑰與公鑰是否匹配?→ 執(zhí)行 openssl x509 -noout -modulus -in domain.crt | md5 和 openssl rsa -noout -modulus -in domain.key | md5 對比結(jié)果;
- SSL 協(xié)議啟用范圍是否過窄?→ conf 中誤刪 ssl_protocols TLSv1.2 TLSv1.3; 導(dǎo)致低版本 Android WebView 拒絕協(xié)商。
建議每次更新后立即跑一遍 curl -I --resolve example.com:443:127.0.0.1 https://example.com ,觀察 Header 是否有 Strict-Transport-Security 字段回顯。

進階技巧:讓 Nginx 配置 SSL 證書更穩(wěn)更省心
規(guī)模化運維場景下,還可借助這些實踐提效:

- 使用 acme.sh 配合 cron 定時自動輪轉(zhuǎn) Let’s Encrypt 證書,并綁定 post-hook 腳本觸發(fā) nginx reload;
- 在 Ansible Playbook 中定義 template 變量 {{ cert_path }}/{{ key_path }},實現(xiàn)跨集群統(tǒng)一批量下發(fā);
- 啟用 ngx_http_stub_status_module 暴露 $ssl_protocol $ssl_cipher 指標(biāo),接入 Prometheus 做變更前后加密套件分布監(jiān)控。
至此,你就掌握了 Nginx 配置 SSL 證書從入門到穩(wěn)態(tài)交付的全鏈條技能樹。

聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)

送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時

需注明出處:新網(wǎng)idc知識百科

免費咨詢獲取折扣

Loading