這里,我將介紹什么是 OCSP Stapling 以及為什么要開啟它。
在線證書狀態協議(Online Certificate Status Protocol),簡稱 OCSP,是一個用于獲取 X.509 數字證書撤銷狀態的網際協議,在 RFC 6960 中定義。OCSP 用于檢驗證書合法性,查詢服務一般由證書所屬 CA 提供。OCSP 查詢的本質,是一次完整的 HTTP 請求加響應的過程,這中間涵括的 DNS 查詢、建立 TCP 連接、Web 端工作等步驟,都將耗費更多時間,使得建立 TLS 花費更多時長。
而這時,OCSP Stapling 出現了。經由 OCSP Stapling(OCSP 封套),Web 端將主動獲取 OCSP 查詢結果,并隨證書一起發送給客戶端,以此讓客戶端跳過自己去尋求驗證的過程,提高 TLS 握手效率。
生成 OCSP Stapling 文件
經過以下步驟生成所需的用于 OCSP Stapling 驗證的文件
首先,需要準備三份證書:
站點證書(website.pem)+ 根證書(root.pem)+ 中間證書(intermediate.pem)
中間證書和根證書,需要根據你的證書的 CA,去下載對應的證書
以下列出了 Let's Encrypt 的中間證書和根證書的下載地址:
根證書:
DST Root CA X3 https://ssl-tools.net/certificates/dac9024f54d8f6df94935fb1732638ca6ad77c13.pem
ISRG Root X1 https://letsencrypt.org/certs/isrgrootx1.pem
中間證書:
Let's Encrypt Authority X1 https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem
Let's Encrypt Authority X2 https://letsencrypt.org/certs/lets-encrypt-x2-cross-signed.pem
Let's Encrypt Authority X3 https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem
Let's Encrypt Authority X4 https://letsencrypt.org/certs/lets-encrypt-x4-cross-signed.pem
這里以 DST Root CA X3 根證書 + Let's Encrypt Authority X3 中間證書 為例(現在 Let's Encrypt 簽發的證書基本都是這樣的組合):
# 下載根證書和中間證書wget -O root.pem https://ssl-tools.net/certificates/dac9024f54d8f6df94935fb1732638ca6ad77c13.pemwget -O intermediate.pem https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem# 生成 OCSP Stapling 驗證文件# 注意,中間證書在上、根證書在下cat cat intermediate.pem > chained.pemcat root.pem >> chained.pem
這樣,生成的 chained.pem 就是所需的 OCSP Stapling 驗證文件。
OCSP Stapling Response
openssl x509 -in website.pem -noout -ocsp_uri
使用這個命令后,返回你的證書對應的 OCSP 服務地址
例如,Let's Encrypt 現在的 OCSP 服務地址是 http://ocsp.int-x3.letsencrypt.org/
以 Let's Encrypt 為例,獲取站點證書的 OCSP Response
openssl ocsp -no_nonce / -issuer intermediate.pem / -CAfile chained.pem / -VAfile chained.pem / -cert website.pem / -url http://ocsp.int-x3.letsencrypt.org / -text
若沒有錯誤,會返回如下:
Response verify OK
website.pem: good
This Update: Oct 24 00:00:41 2017 GMT
Next Update: Oct 31 00:00:41 2017 GMT
Nginx 啟用 OCSP Stapling
ssl_stapling on;ssl_stapling_verify on;ssl_trusted_certificate ~/chained.pem;resolver 208.67.222.222 valid=300s;resolver_timeout 5s;
然后重啟 Nginx,就成功啟用 OCSP Stapling 了
OCSP Stapling Status
若站點已成功啟用 OCSP Stapling,會返回以下
OCSP response:OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response
若返回這個,明顯就是失敗了
OCSP response: no response sent
也可以訪問 ssllabs 進行 SSL 測試,其中也能看到 OCSP Stapling 開啟與否的報告。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
|
新聞熱點
疑難解答