![]() |
Ésto da miedín (caducidad PEM de envios)
Aquí os dejo la Caducidad del cacert.pem de Curl, que es común para muchos programas y de momento este es el último de curl:
Common Name : Entrust Root Certification Authority
Esto afectará a muchos y a más de uno les va a tirar la conexión para enviar a Aeat, comprobar NIFS... Minimo a estos: Curl.exe Apache-php Los lenguajes que integren de "alguna forma" funcionalidad curl, probablemente tendrán problemas a partir de esa fecha si no están actualizados o se saltan las comprobaciones de certificados. Saludos |
Seguimos con la investigación:
Resulta que curl.exe, puede tener un bundle (certificado) distinto del oficial, por que? por que curl para windows necesita trabajar out-of-the-box (para que el usuario no tenga que descargar actualizaciones por un largo perido). La recomendación de curl es usar su certificado. Por ejemplo el certificado que viene en mi instalacion es: Common Name : GlobalSign Root CA Organization : GlobalSign nv-sa Organization Unit : Root CA Country : BE Valid From : Sep 01,1998 Valid To : Jan 28,2028 Issuer : GlobalSign nv-sa Serial Number : 4835703278459707669005204 Como veis con una fecha superior a la del original de curl, que puse en el anterior post. Y como podeis comprobar la caducidad del vuestro? pues con un comando de openssl: openssl x509 cacert.pem -noout -dates o más bien: openssl x509 curl-ca-bundle.crt -noout -dates por que en la carpeta bin de curl, el .pem , se copia con ese nombre:curl-ca-bundle.crt o aún más facil: copiais el certificado pem a txt, lo abrís y copiais el contenido en el box de la siguiente web: https://www.seidonet.com/clientes/ss...cal=es#results Hay que tener en cuenta que aunque de la página oficial se descargue como cacert.pem en la instalación de curl en la carpeta bin, hay que renombrarla a curl-ca-bundle.crt Si decidís usar el certificado original, adseguraos de hacer copia del anterior antes de machacarlo, por si hay alguna incompatibilidad con vuestra versión de curl y si os va bien hay que ir revisando periodicamente (lo podeis automatizar), la ultima version del bundle(certificado pem) en: https://curl.se/ca/cacert.pem el comando curl para descargarlo automaticamente sería: curl.exe https://curl.se/ca/cacert.pem -o [pathdestino\cacert.pem] y despues copiarlo y pegarlo en vuestra carpeta curl/bin como curl-ca-bundle.crt (moviendo por seguridad el anterior antes) En definitiva, la decision es: -Tienes un curl auto-actualizable (windows lo actualiza automáticamente), comprueba la caducidad y mira si se actualiza automaticamente antes de esa fecha. -Tienes un curl instalado y no se actualiza automáticamente: piensa seriamente en lo que he puesto en el post, por que usar la opción -k en las llamadas puede que no sea siempre efectiva, y a la aeat algún día le dé por regularizar ésto. |
No olvideis que la principal inseguridad de no verificar cerificados al enviar radica en que intercepten los envios y usen esa conexion para hacer otro tramite.
La otta razon es que alguien consiga a traves de servidores dns trampear la resoluxion de donde se envia la informacion y eso se puede hacer tambien desde la red local y no es complicado que te metan algun troyano que te camvien esa resolucion de nombres. |
Sigo:
El bundler es un conjunto de certificsdos, xon lo cual lo que devuelva una verificacion web, como la que puse antes, solo te enseña uno de ellos. Por lo tanto refuerza lo de tener actualizado el bundler de certificados, sobre todo teniendo en cuenta que no controlamoscuando la aeat renueva. Por tanto: Creo que es aconsejable quitar el -k y tener el bundler actualizado. Tener un parametro de emergencia por si el bundler ofixcial tarda mas en actualizarse que el nuevo de la aeat. O incluso que pregunte al emisor si quiere trabajar en modo de envio inseguro(no se si esto le gusta mucho a la aeat, tendria que ser algo temporal) Tambien existe la posibilidad de que curl apunte al almacen de certificados de windows y creo que es una buena opción, ¿sabeis si windows autorenueva esos certificados del almacen? |
Gracias por compartir la investigación.
^\||/^\||/^\||/^\||/ |
Cita:
Cita:
|
Cita:
Gracias por confirmar. Entonces iré viendolo a ver que hago. |
Ya por fin lo tengo claro y curl funcionando 100% sin bloqueos.
Que ocurre con curl -k Que a veces (poquisimas veces peroocurre) los servidores de la AEAT detectan actividades raras que realiza el curl con -k y banea la conexión, esa conexión no salta ni con los timeouts, por que queda en una especie de "limbo", aunque podeis hacer que salte añadiendo el parametro --no-keepalive y así no se mantiene viva esos 5 minutos. El problema es que llegue un día que esas conexiones no entren nunca y estaba preocupado de que un día me pille en "Cincinati" y empiece a recibir errores de todo tipo, y tampoco quiero dejar de aprovechar esta caracteristica, PEROO, también puede pasar que los CA de LA AEAT+ ROOT + INTERMEDIOS que tiene curl en su bundle, para conectarse a la AEAT, caduquen, por lo que he visto, tendrian que caducar todos, ya que he probado a dejar cada uno de ellos solos en el bundle y funcionaría bien la conexión, no siendo así si están todos caducados, pero con -k se saltaria esa restricción. Entonces, por que no asegurarselo todo? Os dejo lo que he hecho por si os viene bien: Cita:
Código PHP:
Saludos |
| La franja horaria es GMT +2. Ahora son las 14:07:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi