¿Cómo verifico si mis certificados SSL han sido revocados?


23

El descubrimiento reciente de la vulnerabilidad de heartbleed ha llevado a las autoridades de certificación a volver a emitir certificados.

Tengo dos certificados que se generaron antes de que se descubriera la vulnerabilidad heartbleed. Después de que el emisor de SSL me dijo que regenerara el certificado, actualicé mis servidores / dominios con los nuevos certificados.

Si mi entendimiento es correcto, entonces los certificados antiguos deberían haber sido revocados por la CA y haber llegado a la CRL (Lista de revocación de certificados) o la base de datos OCSP (Protocolo de estado de certificados en línea) de lo contrario es técnicamente posible que alguien realice un " hombre en el medio ataque "al regenerar los certificados de la información recogida de los certificados comprometidos.

¿Hay alguna manera de verificar si mis antiguos certificados llegaron a CRL y OCSP? Si no lo han hecho, ¿hay alguna manera de incluirlos?

ACTUALIZACIÓN: La situación es que ya he reemplazado mis certificados, todo lo que tengo son los archivos .crt de los certificados antiguos, por lo que no es posible usar la URL para verificar.


Puede verificar usando certutil, creo. Lee aquí
MichelZ

1
Yo uso Ubuntu como mi escritorio y Centos en mi servidor
sridhar pandurangiah

Entonces te animo a etiquetar tu pregunta como tal
MichelZ

Recomiendo una lectura de esto para * nix
MichelZ

@MichelZ - He etiquetado la pregunta con Ubuntu
sridhar pandurangiah

Respuestas:


10

Obtenga la URL de OCSP de su certificado:

$ openssl x509 -noout -ocsp_uri -in /etc/letsencrypt/archive/31337.it/cert1.pem
http://ocsp.int-x1.letsencrypt.org/
$

Envíe una solicitud al servidor ocsp para verificar si el certificado se revoca o no:

$ openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain4.pem -cert /etc/letsencrypt/archive/31337.it/cert4.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 10:00:00 2015 GMT
        Next Update: Nov  5 10:00:00 2015 GMT
$

Este es un buen certificado.

Este es un certificado revocado:

$  openssl ocsp -issuer /etc/letsencrypt/archive/31337.it/chain3.pem -cert /etc/letsencrypt/archive/31337.it/cert3.pem -text -url http://ocsp.int-x1.letsencrypt.org/ -header "HOST" "ocsp.int-x1.letsencrypt.org"
...
        This Update: Oct 29 12:00:00 2015 GMT
        Next Update: Nov  5 12:00:00 2015 GMT
        Revocation Time: Oct 29 12:33:57 2015 GMT
$

Esto funcionó para mí (gracias), pero pensé que también mencionaría que además del Tiempo de Revocación, mi salida también mostró un Motivo de Revocación, lo que fue útil cuando nos contactamos con el emisor tratando de averiguar qué estaba pasando. el cert.
sdek

10

Puede usar certutil en Windows:

Si tiene un certificado y desea verificar su validez, ejecute el siguiente comando:

certutil -f –urlfetch -verify [FilenameOfCertificate]

Por ejemplo, use

certutil -f –urlfetch -verify mycertificatefile.cer

Fuente / Más información: TechNet

Además, asegúrese de consultar con su CA. El hecho de que vuelva a escribir el certificado / obtenga uno nuevo, no significa que lo revoquen automáticamente.


1
Para instalar certutilen el servidor Ubuntu, use el comando sudo apt-get install libnss3-tools. Esto no es obvio ya que la búsqueda en el caché apt-get no devuelve resultados para la cadena certutil. Sé que el servidor del OP es CentOS, pero es posible que otros administradores de Ubuntu Server también encuentren útil esta pregunta.
dotancohen

Mi respuesta fue puramente basada en Windows . No sé de ninguna implementación * nix de esto. Vea aquí una posible solución * nix
MichelZ

2
@dotancohen Si bien ese programa también se llama certutil, no es el mismo programa que certutil.exeen Windows y no se usa de la misma manera.
Dan Getz

1

Puede usar este servicio SSLLabs para probar certificados SSL, pero necesita que sean accesibles desde la web. Además, puede encontrar más información, ya que este servicio proporciona alguna auditoría.


Esto requiere que el servidor se ejecute con el certificado anterior. Pero después de haber regenerado mis certificados, todo lo que tengo es el archivo .crt del certificado anterior.
sridhar pandurangiah

1

Si ha revocado los certificados a través de la CA que los generó, habrían llegado a OCSP y CRL.

Si desea asegurarse de que ese sea el caso, extraiga la urs ocsp del certificado y luego cree una solicitud ocsp para esa url que incluya el número de serie del certificado, el certificado del emisor ca y recupere la respuesta ocsp y luego uno podría analizarlo para verificar y confirmar que efectivamente se ha revocado.

Más detalles en esta página útil: http://backreference.org/2010/05/09/ocsp-verification-with-openssl/

Nota: esto requiere el uso de la biblioteca openssl.

Edit1: veo que ha agregado información sobre OCSP y CRL explícitamente después de esta respuesta.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.