天天看點

Nginx 實作OCSP Stapling

什麼是OCSP Stapling

OCSP的全稱是Online Certificate Status Protocol,線上證書狀态協定。它是一個用于檢查證書狀态的協定,用戶端使用此協定來檢查證書是否被撤銷。而OCSP Stapling,是指服務端主動擷取 OCSP 查詢結果并随着握手協商時一起發送給用戶端,進而讓用戶端免去自己驗證的過程,提高 TLS 握手效率。

Web容器版本支援

Nginx version 1.3.7以上支援

Apache Server 2.3.3+ 以上支援

自動OCSP Stapling

server {
    listen 443 ssl;
    server_name www.xxx.cn;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s; #設定OCSP請求的DNS伺服器位址
    resolver_timeout 5s;
    ssl_trusted_certificate ca.pem; #ca.pem為證書的中級CA憑證

}           

配置修改完成後,需要重新開機nginx服務規則才會生效。

手動開啟OCSP Stapling

1,獲驗證書的OCSP位址

指令:openssl x509 -in server.pem -noout -ocsp_uri *server.pem為伺服器證書公鑰檔案。

手動:輕按兩下打開.cer格式伺服器證書-詳細資訊-頒發機構資訊通路/授權資訊通路-聯機證書狀态協定中的http連結位址:

http://ocsp2.globalsign.com/gsorganizationvalsha2g2

2,制作stapling.ocsp檔案

openssl ocsp -CAfile root.pem -issuer ca.pem -cert server.pem -url   http://ocsp2.globalsign.com/gsorganizationvalsha2g2 -text -respout ./stapling.ocsp -header "HOST" "ocsp2.globalsign.com"           

其中root.pem為中級CA憑證和頂級根證書,ca.pem為中級CA憑證,server.pem為伺服器證書。

注:stapling.ocsp具備生命周期,需每次在update到期之前更新,建議可以編輯自動化任務腳本進行更新。

3、在Nginx.conf添加如下内容到https站點配置中

server {
    listen 443 ssl;
    server_name www.xxxx.cn;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
    ssl_stapling_file /etc/nginx/cert/stapling.ocsp;
    ssl_trusted_certificate ca.pem;
   }           

4、驗證OCSP Stapling 狀态

openssl s_client -connect  youdomino.com:443 -tlsextdebug –status
           

已開啟

`OCSP response:

OCSP Response Data:

OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response

……`

未開啟

OCSP response: no response sent

繼續閱讀