Nginx

如何為雙棧 RSA + ECC 證書建構 OCSP 證書鏈

  • November 15, 2018

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。

引用自:https://serverfault.com/questions/917446