當用戶使用客戶端或其餘的設備訪問https網站時,須要先驗證https證書,驗證方式有兩種:html
在線證書狀態協議(OCSP)克服了證書註銷列表(CRL)的主要缺陷:必須常常在客戶端下載以確保列表的更新。當用戶試圖訪問一個服務器時,在線證書狀態協議發送一個對於證書狀態信息的請求。服務器回覆一個「有效」、「過時」或「未知」的響應。協議規定了服務器和客戶端應用程序的通信語法。在線證書狀態協議給了用戶的到期的證書一個寬限期,這樣他們就能夠在更新之前的一段時間內繼續訪問服務器。
ocsp比crl方式更加高效,但ocsp也存在一些問題,實時查詢證書會給客戶端帶來必定性能影響,另外一方面須要訪問ca提供的第三方中心話驗證服務器,若是這個第三方驗證服務出現問題,或被攻擊,將會致使ocsp驗證失敗。
這裏咱們推薦更先進的OCSP stapling。nginx
正式名稱爲TLS證書狀態查詢擴展,可代替在線證書狀態協議(OCSP)來查詢X.509證書的狀態。服務器在TLS握手時發送事先緩存的OCSP響應,用戶只需驗證該響應的有效性而不用再向數字證書認證機構(CA)發送請求。說白了,服務器代替客戶端去進行OCSP查詢,緩存查詢結果,而後在與客戶端進行TLS鏈接時返回給客戶端。瀏覽器
CentOS/7.7.x
NginX /1.12.x # 它從 1.3.7+ 開始支持OCSP stapling特性。緩存
listen 443 ssl; ssl_certificate /etc/nginx/ssl/xxx.com/cert.pem; ssl_certificate_key /etc/nginx/ssl/xxx.com/key.pem; ssl_stapling on; ssl_stapling_verify on;# 啓用OCSP響應驗證,OCSP信息響應適用的證書 ssl_trusted_certificate /path/to/xxx.pem;#選項應指向CA的根證書 resolver 8.8.8.8 8.8.4.4 216.146.35.35 216.146.36.36 valid=60s;#添加resolver解析OSCP響應服務器的主機名,valid表示緩存。 resolver_timeout 2s;# resolver_timeout表示網絡超時時間
檢查https網站是否開啓OCSP stapling有兩種方法:
1.SSL Labs https://www.ssllabs.com/sslte...
若是開啓返回
OCSP stapling Yes
2.經過命令服務器
openssl s_client -connect admin.xxx.com:443 -status -tlsextdebug < /dev/null 2>&1 | grep -i "OCSP response"
開啓結果爲:網絡
OCSP response: OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response
http://nginx.org/en/docs/http...
https://blog.sometimesnaive.o...性能