/ / cURL казва, че сертификатът е изтекъл, Firefox не е съгласен - ssl, curl, openssl

cURL казва, че сертификатът е изтекъл, Firefox не е съгласен - ssl, curl, openssl

Опитвам се да осъществя достъп до вътрешен сайт чрез cURL (до който бих могъл да дойда преди няколко дни). Въпреки това, cURL дава грешката curl: (60) SSL certificate problem: certificate has expired, Ако използвам openssl за да проверите началните и крайните дати на сертификата, той дава времева рамка, в която аз съм в рамките на:

echo | openssl s_client -connect internalsite.example.com:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Nov 30 00:00:00 2012 GMT
notAfter=Mar 30 12:00:00 2016 GMT
# For reference, the day I"m posting this is July 30th, 2014

Освен това, ако използвам cURL на друг компютър или се свържа чрез браузъра (Firefox, Chrome или IE), мога да се свържа без грешка.

Също така не мога да се свържа с никоя версия на cURL на моя собствен компютър; това включва cURL в Cygwin и cURL в Ubuntu във виртуална машина, както и версията на Windows.

Какво може да породи това поведение?

Отговори:

1 за отговор № 1

Вашият пакет пакет вероятно е остарял.

Можете да получите такъв, който се поддържа от разработчиците на къдрици на http://curl.haxx.se/ca/cacert.pem

За да го използвате:

<?
$ch = curl_init("http://example.com");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");
$response = curl_exec($ch);

1 за отговор № 2

Моят къдря използва пакетът сертификати, съхраняван в:

/etc/ssl/certs/ca-certificates.crt

В миналото имах този проблем и го отстраних, като погледнах машина, където работеше curl и сравних .crt файловете от тези две машини и копирах липсващия сертификат.

Просто имах този проблем отново и го отстраних този път, като просто копирах целия файл от по-новата машина (по-нова инсталация на Ubuntu ---- машината, където имам проблема е древна).

И работи.