Documentation Générique: Extraction et Renouvellement de Certificats SSL sur Système UNIX¶
Extraction d'un certificat à partir d'un fichier PFX¶
1. Extraction du certificat depuis un fichier PFX¶
Pour extraire le certificat au format .crt à partir d'un fichier PFX, exécutez la commande suivante :
sudo openssl pkcs12 -in <DOMAIN.TLD>.pfx -nokeys -out <DOMAIN.TLD>.crt -nodes
2. Extraction de la clé privée depuis un fichier PFX¶
Pour extraire la clé privée au format .key à partir du fichier PFX, utilisez cette commande :
sudo openssl pkcs12 -in <DOMAIN.TLD>.pfx -nocerts -out <DOMAIN.TLD>.key -nodes
Remarque : Vous devrez fournir le mot de passe du fichier PFX pour l'extraction.
3. Vérification de la compatibilité entre le certificat et la clé¶
Assurez-vous que le certificat et la clé privée sont compatibles en comparant leurs modulus :
- Vérifiez le modulus de la clé privée :
sudo openssl rsa -noout -modulus -in <DOMAIN.TLD>.key
- Vérifiez le modulus du certificat :
sudo openssl x509 -noout -modulus -in <DOMAIN.TLD>.crt
Exemple de sortie :
sudo openssl x509 -noout -modulus -in /etc/ssl/certs/<DOMAIN.TLD>.crt
Modulus=C01F8E3C7E7B...
sudo openssl rsa -noout -modulus -in /etc/ssl/certs/<DOMAIN.TLD>.key
Modulus=C01F8E3C7E7B...
Les modulus doivent être identiques pour garantir la compatibilité.
4. Vérification du service écoutant sur le port 443¶
Pour vérifier quel service écoute sur le port 443, utilisez la commande suivante :
sudo ss -plunt | grep 443
Exemple de sortie :
tcp LISTEN 0 128 0.0.0.0:443 0.0.0.0:* users:(("httpd",pid=12345,fd=7))
Cela permet d’identifier si Apache, Nginx ou un autre service est configuré pour écouter sur ce port.
Renouvellement du certificat SSL pour un service Apache¶
1. Identifier où est configuré le site¶
Pour localiser la configuration du site dans Apache, recherchez le nom de domaine dans les fichiers de configuration :
sudo grep -Rl <DOMAIN.TLD> /etc/httpd/sites-enabled/
2. Identifier l'emplacement des certificats¶
Ouvrez le fichier de configuration du site identifié et recherchez le bloc <VirtualHost _default_:443> pour trouver les chemins des certificats :
sudo cat /etc/httpd/sites-enabled/<DOMAIN.TLD>.conf
Exemple de configuration :
<VirtualHost _default_:443>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/<DOMAIN.TLD>.crt
SSLCertificateKeyFile /etc/ssl/certs/<DOMAIN.TLD>.key
</VirtualHost>
3. Vérification de la syntaxe Apache¶
Avant de redémarrer Apache, vérifiez la syntaxe de la configuration :
sudo httpd -t
Exemple de sortie :
Syntax OK
4. Redémarrer le service Apache¶
Redémarrez Apache pour appliquer les modifications :
sudo systemctl restart httpd
Renouvellement du certificat SSL pour un service Nginx¶
1. Identifier où est configuré le site¶
Pour localiser la configuration du site dans Nginx, recherchez le nom de domaine dans les fichiers de configuration :
sudo grep -Rl <DOMAIN.TLD> /etc/nginx/sites-enabled/
2. Identifier l'emplacement des certificats¶
Ouvrez le fichier de configuration du site pour trouver les certificats dans le bloc server écoutant sur le port 443 :
sudo cat /etc/nginx/sites-enabled/<DOMAIN.TLD>.conf
Exemple de configuration :
server {
listen 443 ssl;
server_name <DOMAIN.TLD>;
ssl_certificate /etc/ssl/certs/<DOMAIN.TLD>.crt;
ssl_certificate_key /etc/ssl/certs/<DOMAIN.TLD>.key;
}
3. Vérification de la syntaxe Nginx¶
Vérifiez la syntaxe de la configuration avant de redémarrer Nginx :
sudo nginx -t
Exemple de sortie :
nginx: configuration file /etc/nginx/nginx.conf test is successful
4. Redémarrer le service Nginx¶
Redémarrez Nginx pour appliquer les modifications :
sudo systemctl restart nginx
Conclusion¶
Cette documentation décrit les étapes pour extraire des certificats et clés à partir d'un fichier PFX, ainsi que les procédures pour renouveler et configurer des certificats SSL sur des serveurs Apache et Nginx. Assurez-vous toujours de vérifier la compatibilité entre les certificats et les clés privées, ainsi que la syntaxe des configurations avant de redémarrer les services.