無法使用內置 CA 包驗證 GoDaddy SHA2 SSL 證書
我遇到了一個有趣的問題。我們有一個聯繫 LTL 托運人 ( https://facts.dohrn.com/ ) 的 PHP 腳本。該腳本一直失敗,因為它無法驗證 SSL 證書。我去了該站點,發現他們正在使用 GoDaddy SHA2 證書(使用GoDaddy 證書捆綁包 - G2,這是用於 SHA2 的)。
我安裝了最新版本,
ca-certificate
看起來他們有Go Daddy 根證書頒發機構 - G2但這不是一回事,並且在所有形式的驗證中都失敗了。我最終能夠通過複製捆綁包並直接在 CURL 請求中使用它來使其工作。但這只是一種解決方法。我是否還缺少其他東西可以在不直接安裝 CA 的情況下完成這項工作?openssl s_client -connect fact.dohrn.com:443
CONNECTED(00000003) depth=0 OU = Domain Control Validated, CN = fact.dohrn.com verify
error:num=20:unable to get local issuer certificate verify return:1
depth =0 OU = 域控制驗證,CN = fact.dohrn.com 驗證
錯誤:num=27:證書不可信驗證返回:1 深度=0 OU =
域控制驗證,CN = fact.dohrn.com 驗證
錯誤:num= 21:unable to verify first certificate verify return:1
— Certificate chain 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
=Go Daddy 安全證書頒發機構 - G2
— 伺服器證書
$$ certificate removed $$
—–END CERTIFICATE—–
subject=/OU=Domain Control Validated/CN=facts.dohrn.com
issuer=/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com,
Inc ./OU=
http://certs.godaddy.com/repository//CN
=Go Daddy SecureCertificate Authority - G2
— 未發送客戶端證書 CA 名稱
— SSL 握手已讀取 1470 字節並寫入 563 字節
— 新,TLSv1/SSLv3,密碼為 RC4-SHA 伺服器公開密鑰是 2048 位安全重新協商不支持壓縮:無擴展:
無 SSL-會話:
協議:TLSv1
密碼:RC4-SHA
會話 ID:1A23000017A7003411F3833970B7FA23C6D782E663CE0C8B17DE4D5A15DEE1A5
會話 ID-ctx:
Master-Key: F6C9C6345A09B7965AF762DE4BEFE8BDD249136BF30D9364598D78CF123F17230B0C25DD552F103BEF9A893F75EAD2B0
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1432044402
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
https://facts.dohrn.com/上的 Web 伺服器似乎不包含中間證書。
這似乎是他們的配置錯誤。這肯定會導致兼容性問題,因為您實際上只應該依賴於事先擁有根證書的客戶端。
查看證書鏈,例如來自SSLLabs 結果:(您還會注意到他們的 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
我想說您的主要選擇是嘗試說服服務提供商修復他們的服務,或者通過向客戶端提供他們的伺服器應該提供的證書來解決您的問題。