Ssl

openssl s_client 連接期間出錯,SSL 警報號 48

  • July 2, 2021

我正在嘗試主要通過 CURL/PHP 連接到第三方,但由於它不起作用,我正在使用更詳細的工具來診斷問題。

如果我在 Ubuntu 14.04 LTS 上嘗試以下操作:

openssl s_client -showcerts -connect secure.thirdpartyhost.com:443 -cert production_client.pem -key production_key.pem -CApath /etc/ssl/certs

它失敗並出現此錯誤:

CONNECTED(00000003)
depth=2 C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2009 Entrust, Inc. - for authorized use only", CN = Entrust Root Certification Authority - G2
verify return:1
depth=1 C = US, O = "Entrust, Inc.", OU = See www.entrust.net/legal-terms, OU = "(c) 2012 Entrust, Inc. - for authorized use only", CN = Entrust Certification Authority - L1K
verify return:1
depth=0 C = CA, ST = New York, L = New York, O = ThirdParty, CN = *.thirdpartyhost.com
verify return:1
139647498331808:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1262:SSL alert number 48
139647498331808:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:

那是他們的伺服器發出錯誤信號嗎?CA 的錯誤是在驗證期間發生的嗎?

謝謝你的幫助。一個單純的開發者,我感謝那些聰明人的幫助!

tlsv1 警報未知 ca

伺服器無法驗證您發送的客戶端證書,因為它找不到伺服器信任的 CA 的任何路徑。

這些程式碼 - “48” - 在 TLS 規範中定義。例如 RFC 5246 中的第 7.2 節(“警報協議”)。 48 是“unknown_ca”,如前所述,這意味著它無法辨識您的客戶端證書的簽名者。

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