¿Por qué los fracasos de rizo encuentran que el certificado SSL funciona de forma intermitente?

StackOverflow https://stackoverflow.com/questions/9433101

Pregunta

Creo que ahora tengo una buena comprensión de por qué necesitas tener el paquete de certificados SSL al retirar el contenido de una API HTTPS como Facebook.Pero mi pregunta es: ¿Por qué esto funciona a veces incluso sin el certificado y otros no? Me parece que Libcurl tiene una manera de superar este problema por sí solo.

¿Alguien sabe por qué o cómo sucede esto?¿Alguien tenía la misma experiencia?

¿Fue útil?

Solución

El comportamiento del curl con respecto a los certificados SSL depende de la opción CURLOPT_SSL_VERIFYPEEER. Suponiendo que use PHP, puede usar la función Curl_Setopt para cambiar el valor de esta opción.

Tengo solo conocimiento superficial de SSL, pero parece que el curl se comporta de la siguiente manera: 0 significa que no hay cheques, 1 verificaciones Si el certificado es legítimo, y 2 cheques también verifican si el certificado se emite al nombre de host correcto.

Puede "desactivar errores molestos" configurando CURLOPT_SSL_VERIFYPEER a 0, pero esto significa que no puede estar seguro de que tendrá una conexión con el servidor correcto, ya que cualquiera puede Spoof the DNS . Así que hacerlo es muy peligroso.

El Facebook oficial PHP SDK suministra su propio certificado utilizando > CURLOPT_CAINFO , pero solo cuando el curl no pudo validar el certificado por sí solo. No sé por qué los desarrolladores del SDK de Facebook harían este condicional; Tal vez porque los certificados de lectura pueden ser costosos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top