Stavo giocando un po 'con gli algoritmi delle firme, cercando di determinare quali CA tra quelle che uso stanno attualmente emettendo certificati SHA2.
Ho generato un CSR che specifica l'hash SHA256 (utilizzando gnutls-certtool
con hash
param e openssl req
con -sha256
param) e il CSR mostra chiaramente sha256WithRSAEncryption
come algoritmo di firma.
$ openssl req -noout -text -in test.csr
Certificate Request:
...
Signature Algorithm: sha256WithRSAEncryption
...
Tuttavia, il certificato risultante dalla CA è stato sottoposto a hash con sha1WithRSAEncryption
.
$ openssl x509 -noout -text -in test.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: ... (...)
Signature Algorithm: sha1WithRSAEncryption
Ovviamente, generando un CSR con --hash SHA1
(% hash disha1WithRSAEncryption
) il certificato risultante utilizzerà sha1WithRSAEncryption
(come previsto).
La CA afferma che l'hash deve essere specificato come parte dell'ordine, non del CSR (che è qualcosa che non posso fare in ogni caso dato che sto inoltrando l'ordine tramite un servizio di terze parti).
Di qui la domanda. La CA deve obbedire all'algoritmo hash specificato nel CSR?