
17-11-2025
|
|
Miembro
|
|
Registrado: jul 2023
Posts: 281
Reputación: 3
|
|
Cita:
Empezado por ermendalenda
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?
|
Eres un crack !!! a mi esto me sobrepasa, así que le he preguntado al primo de zumosol y esto es lo que dice:
Cita:
1. ¿Windows “autorenueva” el almacén de certificados raíz?
Sí, Windows mantiene actualizado el almacén de certificados raíz de confianza de forma automática, a través de:- Actualizaciones de Windows Update (paquetes de “Actualización de certificados raíz”).
- El mecanismo de “Automatic Root Certificates Update” (cuando un certificado intermedio o servidor encadena a una CA que no está localmente, pero es de la lista de confianza de Microsoft, Windows puede descargar el root correspondiente bajo demanda).
En la práctica:- Tú no tienes que ir descargando a mano cacert.pem ni bundles, si las aplicaciones usan la pila de TLS de Windows (Schannel).
- Cuando una CA caduca, se revoca o se añade una nueva, el propio sistema, vía Windows Update, incorpora o retira esos certificados del almacén raíz.
Eso sí:- Dependes de que el servidor tenga Windows Update razonablemente al día (o al menos reciba los paquetes de certificados).
- Si tienes servidores aislados, sin actualizaciones o con WSUS mal configurado, el almacén puede quedarse desactualizado.
2. ¿curl “puede” usar el almacén de Windows?
Aquí la matización importante:- curl en Windows no es una única cosa.
Puede estar compilado con distintos “backends” de TLS:- OpenSSL
- Schannel (WinSSL)
- (menos habitual: mbedTLS, etc.)
Según cómo esté compilado:
a) curl compilado con Schannel (WinSSL)
- Usa el almacén de certificados de Windows.
- No necesita curl-ca-bundle.crt ni cacert.pem.
- La verificación de certificados la hace directamente el sistema operativo.
- Por tanto, se beneficia de la actualización automática de certificados de Windows.
En este caso, muchas de las preocupaciones sobre renovar a mano el bundle desaparecen. Sigues teniendo que preocuparte por no usar -k, pero no por el fichero PEM.
b) curl compilado con OpenSSL (lo que parece tu caso)
- No usa el almacén de Windows, salvo que se haga algo muy específico en tiempo de compilación.
- Necesita un bundle de CA propio, normalmente curl-ca-bundle.crt o cacert.pem.
- La ruta por defecto y el nombre del archivo dependen de cómo se haya compilado e instalado.
Ahí entra todo lo que has pegado:- Descargar cacert.pem de https://curl.se/ca/cacert.pem.
- Renombrarlo a curl-ca-bundle.crt y sustituir el que tienes en bin.
- Revisar fechas de caducidad con openssl x509 -noout -dates.
En este escenario, todo lo que has copiado tiene mucho sentido: tú eres responsable de que ese bundle esté actualizado.
3. ¿Lo que has leído es razonable?
En esencia sí, pero con matices importantes:
Lo que es correcto
- Que el bundle de CA de curl para Windows (cuando usa OpenSSL) no se actualiza solo si tú no actualizas curl o no machacas curl-ca-bundle.crt.
- Que es mala idea vivir eternamente con -k (insecure), sobre todo hablando con AEAT (o con cualquier administración) por:
- Riesgo de MITM (ataque de intermediario).
- Riesgo de DNS spoofing o manipulación de resolución de nombres dentro de una red comprometida.
- Que tiene sentido:
- Quitar -k en operación normal.
- Dejar un “modo emergencia” manual muy controlado (y logado) por si hay un incidente puntual de certificado en AEAT.
Lo que conviene matizar
- Ese “bundle” no es “un certificado” sino un conjunto de certificados raíz; lo que ves al abrirlo en un visor puede ser uno concreto, pero dentro hay muchos.
- La caducidad que miras con openssl x509 sobre curl-ca-bundle.crt depende de cómo extraigas el certificado. Si pasas el fichero entero de golpe al comando, el comportamiento no es exactamente “mira todos y dime la global”, sino que irá certificado a certificado.
4. ¿Qué haría yo en tu caso (entorno Verifactu/AEAT)?
Opción 1 – Si puedes elegir compilación de curl
- Preferiría usar curl con backend Schannel (WinSSL) siempre que sea posible:
- Aprovecha el almacén de certificados de Windows.
- Se beneficia de actualizaciones automáticas.
- Simplifica muchísimo la gestión de CA.
Para comprobarlo:- Ejecuta curl -V
- Si ves algo como SSL: Schannel → usa el almacén de Windows.
- Si ves SSL: OpenSSL → está usando su propio bundle.
Opción 2 – Si ya estás atado a curl + OpenSSL con bundle
- Eliminar -k en condiciones normales.
- Mantener curl-ca-bundle.crt actualizado:
- Un pequeño script o tarea programada que:
- Implementar en tu código un:
- Modo normal: verificación estrica de certificado.
- Modo emergencia: parámetro de configuración que permita usar -k solo temporalmente, dejando trazas claras (log) de cuándo se ha activado y por qué.
Opción 3 – Migrar a Schannel a medio plazo
Dado que ya estás muy pegado a entornos Windows y tienes control de clientes y servidores, migrar todo a Schannel (ya sea vía curl compilado con WinSSL, o usando directamente HttpClient/.NET con Ssl/TLS sobre Schannel) reduce bastante fricción:- Dejas en manos de Windows la gestión de raíces.
- Aprovechas las actualizaciones de MS (que, para temas de CAs, suelen ir razonablemente al día).
5. Respuesta directa a tu pregunta
“¿Sabéis si Windows autorenueva esos certificados del almacén?”
Sí:- Windows actualiza automáticamente el almacén de certificados raíz de confianza a través de Windows Update y del mecanismo de actualización automática de raíces.
- Por tanto, si usas curl con backend Schannel (WinSSL), no necesitas gestionar a mano cacert.pem.
- Si usas curl con OpenSSL, el bundle no usa ese almacén y sí tienes que cuidar tú la actualización del curl-ca-bundle.crt.
|
|