OpenSSL verifica si un certificado SSL tiene la firma SHA-1 o SHA256

3

¿Cómo compruebo si un certificado OpenSSL emitido para un sitio es SHA-1 o SHA-256?

Tengo muchos sitios de intranet que utilizan certificados OpenSSL y estoy un poco confundido, ya que cuando verifico las propiedades del certificado, obtengo:

  • Internet Explorer:

    Algoritmo de firma: sha1RSA
    Signature Hash Algorithm: sha1

  • Firefox:

    Algoritmo de firma: PKCS # 1 SHA-1 con cifrado RSA
    Bajo Huellas digitales, veo tanto SHA256 como SHA-1

El intento de línea de comandos de OpenSSL no funciona

Intenté usar el comando OpenSSL, pero por alguna razón se me sale un error y si intento escribir en un archivo, se crea el archivo de salida, pero está en blanco.

openssl.exe s_client -connect mysite:443 > CertInfo.txt && openssl x509 -text -in CertInfo.txt |
find "Signature Algorithm"

Básicamente, necesito validar que los certificados son realmente SHA-1 y necesito actualizar eso a un SHA256 o SHA-2.

    
pregunta Ochen 24.11.2015 - 13:53
fuente

1 respuesta

5

Aquí está el comando para Linux y Windows.

Y no se alarme por la línea de salida duplicada ( Signature Algorithm: ...). Eso se espera (y es obligatorio).

Linux: sitio de demostración SHA1

$ echo '' | openssl s_client -connect sha1.badssl.com:443 -servername sha1.badssl.com 2>/dev/null | openssl x509 -noout -text | grep 'Signature Algorithm'
    Signature Algorithm: sha1WithRSAEncryption
    Signature Algorithm: sha1WithRSAEncryption

Linux: sitio de demostración SHA256

$ echo '' | openssl s_client -connect sha256.badssl.com:443 -servername sha256.badssl.com 2>/dev/null | openssl x509 -noout -text | grep 'Signature Algorithm'
    Signature Algorithm: sha256WithRSAEncryption
    Signature Algorithm: sha256WithRSAEncryption

Windows cmd.exe: sitio de demostración SHA1

c:\>echo " " | openssl.exe s_client -connect sha1.badssl.com:443 -servername sha1.badssl.com 2>nul | openssl.exe x509 -noout -text | findstr /C:"Signature Algorithm"
    Signature Algorithm: sha1WithRSAEncryption
    Signature Algorithm: sha1WithRSAEncryption

Windows cmd.exe: sitio de demostración SHA256

c:\>echo " " | openssl.exe s_client -connect sha256.badssl.com:443 -servername sha256.badssl.com 2>nul | openssl.exe x509 -noout -text | findstr /C:"Signature Algorithm"
    Signature Algorithm: sha256WithRSAEncryption
    Signature Algorithm: sha256WithRSAEncryption

La huella digital no está dentro del certificado

Es un valor computado .

    
respondido por el StackzOfZtuff 24.11.2015 - 14:06
fuente

Lea otras preguntas en las etiquetas