Nginx
如何為雙棧 RSA + ECC 證書建構 OCSP 證書鏈
Nginx 允許我們使用多個證書,以便我們可以同時使用 ECC 和 RSA 證書
ssl_certificate /etc/ssl/example.com.combined.crt; ssl_certificate_key /etc/ssl/example.com.key; ssl_certificate /etc/ssl/example.com-ecc.combined.crt; ssl_certificate_key /etc/ssl/example.com-ecc.key;
但是,它只允許我們指定一個受信任的證書用於 OCSP 裝訂:
ssl_trusted_certificate /etc/ssl/ocsp-bundle-rsa-ecc.crt;
顯然,我們需要給它兩個中間證書鍊和根證書鏈,但我找不到任何文件說明它是否完全受支持,或者這些證書應該按什麼順序排列,即它是否應該是:
- 中級1
- 根1
- 中級2
- 根2
或者
- 中級1
- 中級2
- 根1
- 根2
或者,如果他們需要共享根(某些 ECC 證書使用 RSA 根簽名):
- 中級1
- 中級2
- 根
或者只是在 nginx 中是否無法使用雙格式證書進行 OCSP。
這個證書包應該如何建構?
我做了一個快速的研究,這似乎是對這個“你不建造它”的最簡單的答案,它會起作用:)
OSCP 裝訂可以正常工作*,*
ssl_trusted certificate
只要..
- 您的作業系統受信任的根 CA 儲存是最新的(
ca-certificates
在 RedHat 中考慮)- 你有
ssl_stapling on;
並且ssl_stapling_verify on;
- 您的每個證書(基於 ECC 和 RSA)都包括除根 CA 之外的完整鏈
nginx 文件很清楚,只有…
如果 ssl_certificate 文件不包含中間證書,則伺服器證書頒發者的證書應存在於 ssl_trusted_certificate 文件中
您實際上可以在 SSL 實驗室測試中檢查您的東西以確認這一點 - OSCP 裝訂在沒有
ssl_trusted_certificate
.因此,如果您只是確保將證書本身及其中間證書放在定義的文件中
ssl_certificate
並在系統中具有最新的根 CA 的最佳實踐,那麼雙證書可以具有有效的 OSCP。