Pregunta

Me gustaría mantener mis certificados raíz de corriente para uso con cURL y PHP interna curl de comandos, sin embargo no hay ningún parámetro en la actualidad para descargar el archivo actual se requiere para una adecuada conexión segura y mantenerla actualizada.

Y ejemplo de uso de curl en PHP para una conexión segura que requiere un archivo llamado cacert.pem (PEM codificado de la cadena de certificados para validar las conexiones remotas) es como sigue :

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_CAINFO, "pathto/cacert.pem");
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
if (!($data = curl_exec($ch))) {
    echo "No data received";
} else {
    echo strlen($data) + " total byte(s)";
}
curl_close($ch);

Mientras que la mayoría de la gente simplemente un conjunto de CURLOPT_SSL_VERIFYPEER a false, y por lo tanto ignorar el problema, lo que es malo .Usted puede aquí puedes ver un certificado de la autoridad de muestra que si usted no tiene este archivo actual, la única forma de conectarse a un servidor seguro es para deshabilitar la comprobación de certificados y, además, advierte de las consecuencias detrás de la desactivación de los pares de verificación.

Lo que estoy pidiendo es una forma legítima para mantener una copia local de cacert.pem así que cuando yo uso curl en PHP para comunicarse con otros servidores, puedo seguir haciéndolo de forma segura .

Esto no es una solicitud de un recurso externo o fuera del sitio de enlace, etc, sin embargo debido a la naturaleza del problema, es probable que puede ser la ÚNICA manera de resolver esto, ya que sería necesario la actualización continua como cadenas de certificados revocados.Hasta la fecha, no hay manera de obtener este archivo, ya sea como parte de la distribución de curl de sí mismo, o php, o la librería curl de php y continuar para mantener la.Si bien es desalentador el hecho de que esto no es algo que un simple comando de actualización como curl --update-root-ca sería bueno, que no existe en ninguna forma.

¿Fue útil?

Solución

Ya que inicialmente la redacción de este artículo, (y por lo tanto, esta reescritura), pude resolver mi problema mediante la inclusión de enlaces directamente a la sólo fuente legítima para mantener este archivo que se proporciona en el sitio mantenido por el autor de curl en esta ubicación

Además, como la tecnología está avanzando a esta pregunta se ha actualizado para mostrar cómo utilizar curl en PHP y fuerza TLS v1.2 conexión (algo que determinadas transacciones de los proveedores exigen o recomiendan y no pueden proporcionar a la información sobre cómo hacer esto).

Con respecto a las entidades de certificación, hay un par de claves de la raíz a las autoridades, tales como :

  • Symantec
  • RapidSSL
  • thawte
  • GeoTrust
  • Comodo

Así como otras autoridades, por su naturaleza, tales como

  • Microsoft
  • Mozilla
  • Google

Que puede ser un marco para cualquiera que quiera mantener su propia cacert.pem.Tenga en cuenta que usted necesita para descargar su (listas de revocación de certificados que han sido violadas o caducado) a partir de la respectiva lista de revocaciones de certificados para mantener una adecuada confianza mecanismo, mientras que usted debería ser capaz de salirse con la descarga de su certificado raíz de las cadenas y los uso como local conserve su autoridad de archivos como su cacert.pem.

Otros consejos

cacert.pem es utilizado por curl.No hay ninguna autoridad máxima en que los certificados son para ser de confianza, pero las listas utilizadas por los navegadores web son una buena fuente.Estas listas se actualizan constantemente debido a la CA de cambios y cambios a las prácticas de seguridad.

Los autores de curl mantener una herramienta que puede extraer un cacert.pem desde Firefox, y después de una razonable para arriba-a-fecha de salida en su sitio web:

  • cacert.pem generados por los autores de curl
  • caextract:para los más consciente de la seguridad, de descargar la herramienta, inspeccionar el código fuente y ejecutar en contra de su propio Firefox.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top