Cómo crear una solicitud de certificado TLS SHA256

10

Uno de nuestros socios comerciales nos solicita que usemos un certificado TLS SHA256 para conectarnos a sus API. No estoy seguro de cómo generar estas solicitudes. He usado openssl en el pasado para crear estas solicitudes, pero generó un certificado SSL usando SHa1. ¿Puedo usar openssl para generar esta solicitud? Si no, ¿cómo genero lo que están pidiendo?

No soy un experto en este campo, así que ni siquiera sé si lo que pregunto tiene sentido.


fuente
Sería divertido para mí si fueras una de las 12 personas a las que tuve que decirles hoy que regresen con un CSA SHA256 en lugar de SHA1.
Hyppy
@Hyppy Espero que todavía lo encuentres divertido al final del año :)
Maarten Bodewes

Respuestas:

12

El hash CSR y el hash cert no están relacionados

El tipo de hash en la solicitud y en el certificado real no están relacionados entre sí.

La CA verifica la firma en la CSR. De esa manera, la CA puede verificar que la CSR no se modificó en tránsito. Eso es todo lo que hace la firma en la CSR.

No hay una forma oficial (o incluso semioficial) en la banda de decirle a un CA qué hash quieres. En cambio, una empresa de CA puede ejecutar varias CA, una de las cuales utiliza exclusivamente SHA256. Y si desea SHA256, entonces envíe su CSR en el sitio web de ese SHA256-only-CA específico. (Y no en el sitio web de su SHA1-CA).

Lo que a menudo se teoriza es algo como esto: "Si presento un CSR firmado con SHA1, entonces mi certificado se firmará con SHA1". Esto no suele hacerse. ( La única CA que conozco que solía hacer esto durante algún tiempo fue Gandi.net ).

Cómo firmar una CSR con SHA256
Dicho esto, use el -sha256parámetro para firmar su CSR con SHA256 de la siguiente manera:

openssl req -new -newkey rsa: 2048 -nodes -sha256 -out www.example.com.sha256.csr -keyout www.example.com.key -subj "/ C = US / ST = ExampleState / L = ExampleLocation / O = Ejemplo de organización / CN = www.example.com "

Cómo comprobar el tipo de hash de una CSR
Y así es como se descubre el tipo de hash de su CSR:

$ openssl req -in www.example.com.sha256.csr -noout -text | grep Signature  
    Signature Algorithm: sha256WithRSAEncryption

Bueno. Está utilizando SHA256 tal como queríamos.

StackzOfZtuff
fuente
5

Si está utilizando OpenSSL, simplemente puede agregar la -sha256opción de línea de comando, que generará la CSR con el algoritmo de firma SHA-256.

Hippy
fuente