Dans la cryptographie à clé publique RSA, les clés privées et publiques d'une paire sont mathématiquement liées en ce qu'elles partagent le même module. La longueur du module, exprimée en bits, est la longueur de clé.
Pour confirmer qu'une clé privée particulière correspond à la clé publique contenue dans une demande de signature de certificat (CSR) et le certificat, il faut confirmer que les modules des deux clés sont identiques. Cela peut être fait directement avec OpenSSL sous Linux / Unix, macOS ou Windows (avec Sous-système Linux de Windows 10 or Cygwin), comme suit:
Pour afficher le hachage md5 du module de la clé privée:
$ openssl rsa -noout -modulus -in mykey.key | ouvressl md5
Pour afficher le hachage md5 du module du CSR:
$ openssl req -noout -modulus -in mycsr.csr | openssl md5
Pour afficher le hachage md5 du module du certificat:
$ openssl x509 -noout -module -in mycert.crt | openssl md5
Si les trois hachages correspondent, le CSR, le certificat et la clé privée sont compatibles. Vous pouvez utiliser diff3
pour comparer les modules des trois fichiers à la fois:
$ openssl req -noout -modulus -in moncsr.csr > csr-mod.txt $ openssl x509 -noout -modulus -in moncert.crt > cert-mod.txt $ openssl rsa -noout -modulus -in maclé.clé > privkey-mod.txt $ diff3 csr-mod.txt cert-mod.txt privkey-mod.txt
Si les trois fichiers sont identiques, diff3
ne produira aucune sortie. Si vous ne souhaitez comparer que deux fichiers (par exemple le certificat et la clé privée), vous pouvez simplement utiliser diff
:
$ diff cert-mod.txt privkey-mod.txt
Le prix de diff
ne produira aucune sortie si les fichiers sont identiques.