Openssl

OpenSSL 中 ERRNO 19 和 20 的區別

  • December 11, 2012

我在伺服器上安裝了一個有效的證書,當使用 OpenSSL 的 -CApath 選項時,證書鍊是有效的。但是,如果我不提供 -CApath 選項,我會收到以下資訊:

19:self signed certificate in certificate chain

當我嘗試不帶 -CApath 的 Google HTTPS 埠時,OpenSSL 會返回:

20:unable to get local issuer certificate

兩者有什麼區別?

它們是非常相似的錯誤。它們都表明信任鏈沒有以受信任的證書結束。不同之處在於,前一個錯誤發生在鏈結束於中間證書時,而後者發生在鏈結束於根證書時。

如果根證書未知,則 20 是預期的錯誤。信任鏈以中間證書結束,您無法獲得頒發者的證書。

如果伺服器出於某種原因在鏈中發送自簽名根證書,則會發生 19。客戶端不會使用根證書,除非他們信任它,如果他們信任它,他們已經擁有它——所以發送它是沒有意義的。但也沒有壞處。它只是更改錯誤消息。

所以我會得出結論,在您的伺服器上,您將根證書配置為鏈證書。因此,您的伺服器正在向客戶端提供該根證書。這是不必要的,但據我所知,這是無害的。

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