واجهت مشكلة مثيرة للاهتمام. لدينا برنامج PHP نصي يتصل بشاحن LTL ( https://facts.dohrn.com/ ). فشل هذا البرنامج النصي لأنه لا يمكنه التحقق من صحة شهادة SSL. ذهبت إلى الموقع ووجدت أنهم كانوا يستخدمون شهادة GoDaddy SHA2 (تستخدم حزم شهادات GoDaddy - G2 ، وهو ما يتم استخدامه لـ SHA2).

لدي أحدث إصدار من ca-certificateالتثبيت ويبدو أن لديهم Go Daddy Root Certificate Authority - G2 لكن هذا ليس نفس الشيء ويفشل في جميع أشكال التحقق من الصحة. تمكنت أخيرًا من تشغيلها عن طريق نسخ الحزمة واستخدامها مباشرة في طلب CURL. لكن هذا مجرد حل بديل. هل هناك شيء آخر أفتقده يمكن أن يجعل هذا يعمل دون تثبيت المرجع المصدق (CA) مباشرة؟

# openssl s_client -connect facts.dohrn.com:443
CONNECTED(00000003) depth=0 OU = Domain Control Validated, CN = facts.dohrn.com verify
error:num=20:unable to get local issuer certificate verify return:1
depth=0 OU = Domain Control Validated, CN = facts.dohrn.com verify
error:num=27:certificate not trusted verify return:1 depth=0 OU =
Domain Control Validated, CN = facts.dohrn.com verify
error:num=21:unable to verify the 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 Secure
Certificate Authority - G2
--- Server certificate [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 Secure
Certificate Authority - G2
--- No client certificate CA names sent
--- SSL handshake has read 1470 bytes and written 563 bytes
--- New, TLSv1/SSLv3, Cipher is RC4-SHA Server public key is 2048 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion:
NONE SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
Session-ID: 1A23000017A7003411F3833970B7FA23C6D782E663CE0C8B17DE4D5A15DEE1A5
Session-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)

answer

يبدو أن خادم الويب على https://facts.dohrn.com/ لا يتضمن الشهادة المتوسطة.

يبدو أن هذا خطأ في التكوين من جانبهم. إنه بالتأكيد شيء يمكن توقع حدوثه في مشكلات التوافق حيث من المفترض حقًا فقط الاعتماد على العملاء الذين لديهم شهادات الجذر في مكانها مسبقًا.

راجع سلسلة الشهادات ، على سبيل المثال من نتيجة 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


أود أن أقول إن خياراتك الرئيسية هي إما محاولة إقناع مزود الخدمة لإصلاح خدمتهم أو حل المشكلة من جانبك من خلال تزويد العميل بالشهادات التي كان من المتوقع أن يقدمها الخادم الخاص به.