Comment créer une demande de certificat TLS SHA256

10

L'un de nos partenaires commerciaux nous demande d'utiliser un certificat TLS SHA256 pour se connecter à leurs API. Je ne sais pas comment générer ces demandes. J'ai utilisé openssl dans le passé pour créer ces demandes, mais il a généré un certificat SSL à l'aide de SHa1. Puis-je utiliser openssl pour générer cette demande? Sinon, comment puis-je générer ce qu'ils demandent?

Je ne suis pas un expert dans ce domaine, donc je ne sais même pas si ce que je demande a du sens.


la source
Ce serait amusant pour moi si vous faisiez partie des 12 personnes à qui j'ai dû dire aujourd'hui de revenir avec un CSR SHA256 au lieu de SHA1.
Hyppy
@Hyppy J'espère que vous trouverez toujours ça amusant à la fin de l'année :)
Maarten Bodewes

Réponses:

12

Hachage CSR et hachage cert non liés

Le type de hachage sur la demande et sur le certificat réel n'est pas lié l'un à l'autre.

L'AC vérifie la signature sur le CSR. De cette façon, l'AC peut vérifier que le CSR n'a pas été modifié en transit. C'est tout ce que fait la signature sur le CSR.

Il n'y a aucun moyen officiel (ou même semi-officiel) de dire à une autorité de certification quel hachage vous voulez. Au lieu de cela, une entreprise CA peut exécuter plusieurs autorités de certification, dont l'une utilise exclusivement SHA256. Et si vous voulez SHA256, vous soumettez votre CSR sur le site Web de cette seule AC SHA256 uniquement. (Et pas sur le site Web de leur SHA1-CA.)

Ce qui est souvent théorisé est quelque chose comme ceci: "Si je soumets un CSR signé avec SHA1, alors mon certificat sera signé avec SHA1." Ce n'est généralement pas fait. ( Le seul CA que je connaisse qui le faisait depuis un certain temps était Gandi.net .)

Comment signer un CSR avec SHA256
Cela étant dit, utilisez le -sha256paramètre pour signer votre CSR avec SHA256 comme ceci:

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 = ExampleOrganisation / CN = www.example.com "

Comment vérifier le type de hachage d'une CSR
Et voici comment vous découvrez le type de hachage de votre CSR:

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

Bien. Il utilise SHA256 comme nous le voulions.

StackzOfZtuff
la source
5

Si vous utilisez OpenSSL, vous pouvez simplement ajouter l' -sha256option de ligne de commande, qui générera le CSR avec l'algorithme de signature SHA-256.

Hyppy
la source