Come creare una richiesta di certificato TLS SHA256


10

Uno dei nostri partner commerciali ci sta chiedendo di utilizzare un certificato TLS SHA256 per connetterci alle loro API. Non sono sicuro di come generare queste richieste. Ho usato openssl in passato per creare queste richieste ma ha generato un certificato SSL usando SHa1. Posso usare openssl per generare questa richiesta? In caso contrario, come posso generare ciò che stanno chiedendo?

Non sono un esperto in questo campo, quindi non so nemmeno se ciò che sto chiedendo abbia senso.

tls  openssl 

Sarebbe divertente per me se tu fossi una delle 12 persone che dovevo dire oggi di tornare con un CSR SHA256 invece di SHA1.
Hyppy,

@Hyppy spero che alla fine dell'anno lo trovi ancora divertente :)
Maarten Bodewes

Risposte:


12

Hash CSR e hash cert non correlati

Il tipo di hash sulla richiesta e sul certificato effettivo non sono correlati tra loro.

L'autorità di certificazione verifica la firma sul CSR. In questo modo, la CA può verificare che il CSR non sia stato modificato durante il trasporto. Questa è tutta la firma sul CSR.

Non esiste un modo in-band ufficiale (o anche semi-ufficiale) di dire a una CA quale hash vuoi. Invece una società CA può eseguire più CA, una delle quali utilizza esclusivamente SHA256. E se vuoi SHA256, allora invii il tuo CSR sul sito Web di quella specifica CA solo SHA256. (E non sul sito web della loro SHA1-CA.)

Ciò che viene spesso teorizzato è qualcosa del genere: "Se invio un CSR firmato con SHA1, il mio certificato verrà firmato con SHA1". Questo di solito non è fatto. ( L'unica CA che conosco che era solito fare per qualche tempo era Gandi.net .)

Come firmare un CSR con SHA256
Detto questo, usa il -sha256parametro per firmare il tuo CSR con SHA256 in questo modo:

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"

Come controllare il tipo di hash di un CSR
Ed ecco come scopri il tipo di hash del tuo CSR:

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

Buono. Sta usando SHA256 proprio come volevamo.


5

Se stai usando OpenSSL, puoi semplicemente aggiungere l' -sha256opzione della riga di comando, che genererà il CSR con l'algoritmo di firma SHA-256.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.