Beaucoup a été écrit sur l'installation de certificats SSL sur un serveur Web, et généralement cette question n'est pas difficile pour les administrateurs système. Cependant, juste avant l'installation, il est agréable de faire quelques vérifications afin de ne pas envisager l'ennuyeux "Le certificat de sécurité du site n'est pas fiable!" Dans le navigateur (Le certificat de sécurité du site n'est pas approuvé!). Cela est particulièrement vrai lorsque vous recevez des certificats non pas du registraire, mais du client, qui peut, par exemple, mélanger des clés privées ou envoyer un certificat au format de son éditeur de texte avec l'ajout de la mise en forme des ordures.
Ainsi, pour que tout fonctionne immédiatement, il est conseillé de faire quelques vérifications avant d'installer le certificat SSL.
Alors commençons ...
1. Vérifiez l'intégrité du certificat:
openssl x509 -noout -modulus -in certificate.crt
Si nous obtenons son module à la sortie, alors l'intégrité du certificat n'est pas rompue. Sinon, il y aura une erreur: "impossible de charger le certificat".
2. De même, nous vérifions l'intégrité de la clé privée:
openssl rsa -noout -modulus -in privatekey.key
3. Nous examinons la période de validité du certificat:
openssl x509 -noout -text -in certificate.crt | grep -e "Not Before" -e "Not After"
4.
Vérifiez la révocation du certificat .
5. Vérifiez la conformité du certificat et de la clé privée:
openssl x509 -noout -modulus -in certificate.crt | openssl md5 openssl rsa -noout -modulus -in privatekey.key | openssl md5
Si les résultats sont identiques, le certificat et la clé privée se correspondent.
Automatisation
Si vous devez installer quelques certificats SSL par an, les commandes ci-dessus suffisent amplement. Cependant, lorsque vous devez travailler avec des certificats régulièrement, il est préférable d'utiliser des scripts prêts à l'emploi. À titre d'exemple, j'oserais suggérer
mon propre développement sous bash. Les scripts effectueront toutes ces actions sans gestes inutiles de votre part (testés dans Ubuntu, mais très probablement cela fonctionnera dans d'autres distributions Linux).
wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-matching.sh chmod a+x ssl-check-matching.sh wget https://raw.githubusercontent.com/o-pod/security/master/ssl-check-revoc.sh chmod a+x ssl-check-revoc.sh
Vérification de l'intégrité et de la conformité du certificat et de la clé privée:
./ssl-check-matching.sh certificate.crt privatekey.key -v
Vérification de la période de validité du certificat et de son absence dans les listes de révocation:
./ssl-check-revoc.sh -f certificate.crt -v
Les tests décrits ci-dessus couvrent les problèmes d'installation de certificat SSL que j'ai jamais rencontrés dans la pratique. Mais si vous pensez qu'il vaut la peine de vérifier d'autres paramètres, partagez les commentaires, je vous en serai reconnaissant.