Openssl
OpenSSL 中 ERRNO 19 和 20 的區別
我在伺服器上安裝了一個有效的證書,當使用 OpenSSL 的 -CApath 選項時,證書鍊是有效的。但是,如果我不提供 -CApath 選項,我會收到以下資訊:
19:self signed certificate in certificate chain
當我嘗試不帶 -CApath 的 Google HTTPS 埠時,OpenSSL 會返回:
20:unable to get local issuer certificate
兩者有什麼區別?
它們是非常相似的錯誤。它們都表明信任鏈沒有以受信任的證書結束。不同之處在於,前一個錯誤發生在鏈結束於中間證書時,而後者發生在鏈結束於根證書時。
如果根證書未知,則 20 是預期的錯誤。信任鏈以中間證書結束,您無法獲得頒發者的證書。
如果伺服器出於某種原因在鏈中發送自簽名根證書,則會發生 19。客戶端不會使用根證書,除非他們信任它,如果他們信任它,他們已經擁有它——所以發送它是沒有意義的。但也沒有壞處。它只是更改錯誤消息。
所以我會得出結論,在您的伺服器上,您將根證書配置為鏈證書。因此,您的伺服器正在向客戶端提供該根證書。這是不必要的,但據我所知,這是無害的。