無法使用內建 CA 捆綁包來驗證 GoDaddy SHA2 SSL 憑證

無法使用內建 CA 捆綁包來驗證 GoDaddy SHA2 SSL 憑證

我遇到了一個有趣的問題。我們有一個聯絡 LTL 托運人的 PHP 腳本(https://facts.dohrn.com/)。該腳本一直失敗,因為它無法驗證 SSL 憑證。我造訪該網站,發現他們正在使用 GoDaddy SHA2 憑證(使用GoDaddy 憑證捆綁包 - G2,這就是 SHA2 所使用的)。

我安裝了最新版本ca-certificate,看起來他們已經GoDaddy 根憑證授權單位 - G2但這不是同一件事,並且在所有形式的驗證中都失敗了。我最終能夠透過複製捆綁包並直接在 CURL 請求中使用它來使其工作。但這只是一個解決方法。我還缺少其他東西可以在不直接安裝 CA 的情況下完成這項工作嗎?

# openssl s_client -connectfacts.dohrn.com:443
CONNECTED(00000003) 深度=0 OU = 網域控制驗證,CN =facts.dohrn.com 驗證
錯誤:num=20:無法取得本地頒發者憑證驗證傳回:1深度頒發者驗證傳回:1深度頒發者驗證傳回:1深度核發者驗證傳回:1深度頒發者驗證傳回:1深度頒發者驗證傳回:1
深度核對0 OU = 網域控制已驗證,CN =facts.dohrn.com 驗證
錯誤:num=27:憑證不受信任驗證傳回:1 深度=0 OU =
網域控制已驗證,CN =facts.dohrn.com 驗證
錯誤: num= 21:無法驗證第一個證書驗證返回:1
---證書鏈0 s:/OU=Domain Control Validated/CN=facts.dohrn.com
i:/C=US/ST=Arizona/L=Scottsdale /O =GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN=GoDaddy 安全性
憑證授權單位 - G2
--- 伺服器憑證 [憑證已刪除]
-----END 憑證 -----
subject=/OU=網域控制已驗證/CN= facts.dohrn.com
發行者=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
Inc./OU= http://certs.godaddy.com/repository//CN=GoDaddy 安全
證書頒發機構 - G2
--- 未發送客戶端憑證CA 名稱
--- - SSL 握手已讀取 1470 位元組並寫入 563 位元組
--- 新,TLSv1/SSLv3,密碼為RC4-SHA 伺服器公鑰為2048 位元不支援安全重新協商壓縮:無擴充:
無 SSL-會話:
協定:TLSv1
密碼:RC4-SHA
會話 ID:1A23000017A7003411F3833970B7FA23C6D782E663CE0C8B17DE4D5A15DEE1A5782E663CE0C8B17DE4D5A15DEE1A570632600000 9136BF30D 9364598D78CF123F17230B0C25DD552F103BEF9A893F75EAD2B0 金鑰參數:無 Krb5 主體:無 PSK 身分:無
PSK 身分提示:無 開始時間:1432044402 逾時:300(秒) 驗證回傳代碼:21(無法驗證第一個憑證)








答案1

看來 Web 伺服器位於https://facts.dohrn.com/不包括中級證書。

這似乎是他們的配置錯誤。這肯定會導致相容性問題,因為您實際上只應該依賴預先擁有根憑證的用戶端。

查看憑證鏈,例如來自SSL實驗室結果:(您還會注意到他們的 SSL 設定還存在許多其他問題。)

1   Sent by server  facts.dohrn.com 
Fingerprint: 823e3a70f194c646498b2591069b3727ad0014d9 
RSA 2048 bits (e 65537) / SHA256withRSA

2   Extra download  Go Daddy Secure Certificate Authority - G2 
Fingerprint: 27ac9369faf25207bb2627cefaccbe4ef9c319b8 
RSA 2048 bits (e 65537) / SHA256withRSA

3   In trust store  Go Daddy Root Certificate Authority - G2   Self-signed  
Fingerprint: 47beabc922eae80e78783462a79f45c254fde68b 
RSA 2048 bits (e 65537) / SHA256withRSA


我想說,您的主要選擇是要么嘗試說服服務提供者修復他們的服務,要么通過向客戶端提供其伺服器預期提供的證書來解決您的問題。

相關內容