Verificar datos de un CSR (Certificate Signing Request) con OpenSSL

Un CSR contiene información cifrada a partir de la cual se genera un certificado SSL. Entre esta información se encuentran datos como el common name del certificado (dominio), el nombre de la empresa que lo va a adquirir, su localización, dirección de correo electrónico, etc. Hay diversas formas de generarlo, por ejemplo como vimos en su día con OpenSSL o keytool.

Existen sitios web que permiten realizar la verificación de los datos del certificado online, básicamente para confirmar que los datos introducidos son los correctos y que el CSR está listo para enviar a la entidad certificadora. Evidentemente, cuanta menos información se manipule a través de Internet, y más de este tipo, mucho mejor. Para ello, lo lógico es no recurrir a estos sitios web y hacer la comprobación directamente en local con OpenSSL.

La sintaxis es sencilla:

$ openssl req -text -noout -verify -in server.csr

server.csr hace referencia al CSR a verificar. La salida del comando es similar a lo que veis a continuación:

$ openssl req -text -noout -verify -in server.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=ES, ST=Madrid, L=Madrid, O=Foo organization, OU=IT Department, CN=foo.bar.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ec:e4:e7:2a:c5:ce:0b:1f:6c:e3:cd:5d:7f:0c:
 [...]
                    dd:49:18:43:27:ae:2f:ab:70:68:eb:34:2d:3a:cf:
                    e4:97:21:ac:d0:77:53:82:bd:22:60:7c:56:7e:00:
                    fc:4b
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Subject Key Identifier: 
                63:9F:D3:B6:81:65:EC:95:01:DE:E6:1B:78:DC:7F:02:CB:49:F7:F5
    Signature Algorithm: sha256WithRSAEncryption
         e6:b1:bd:4d:62:06:af:90:88:ec:99:37:ed:a8:b2:e9:9a:6d:
 [...]