這里,我將介紹什么是 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
新聞熱點
疑難解答