Nginx – Créer et Installer un certificat SSL signé

Installer un certificat SSL sur Nginx est rapide et permet de sécuriser et authentifier la connexion à votre site pour pas cher.
Personnelement j’ai pris un PositiveSSL délivré par Comodo pour 4,99$/an chez SSLs

Préparation du dossier de Certificat

cd /etc/nginx
mkdir ssl
cd ssl

Génération du Certificats

openssl genrsa -des3 -out domain.com.key 2048

Generating RSA private key, 2048 bit long modulus
...+++..................................................................................................+++
Enter pass phrase for domain.com.key: #Mot de passe à ne pas oublier
Verifying - Enter pass phrase for domain.com.key: #Retaper le mot de passe

Votre fichier .key (protégé par mot de passe) est maintenant créér, nous allons maintenant générer le CSR

Génération du CSR

openssl req -new -key domain.com.key -out domain.com.csr

Enter pass phrase for domain.com.key: #Entrer le mot de passe d'avant
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Company
Organizational Unit Name (eg, section) []:Company Unit
Common Name (eg, YOUR name) []:domain.com #Doit correspondre au domaine à sécuriser !!
Email Address []:[email protected]

Votre fichier CSR est maintenant généré. Nous allons quand même déprotéger le fichier .KEY pour Nginx.

Génération de la clé non protégée

Le fichier .key est protégé par la Passphrase ce qui est une sécurité en plus, hors en cas de crash ou de redémarrage de Nginx, elle sera redemandée ce qui peux poser problème. Nous allons donc l’enlever et déprotéger le .key.

openssl rsa -in domain.com.key -out domain.com.noprot.key

Une fois le CSR soumis à SSLs, il vont vous fournir deux certificats, le ROOT CA et votre Certificat.
Enregistrez le « Certificat » dans un fichier nommé « domain.com.crt », et enregistrez le « ROOT CA » dans un fichier nommé « root.ca.crt », pour ensuite créer un certificat en fusionnant les deux.

Fusion des Certificats

cat domain.com.crt root.ca.crt > cert.domain.com.crt

Il ne reste plus qu’à configurer Nginx correctement pour lui faire utiliser notre certificat

Configuration de Nginx

nano /etc/nginx/sites-enabled/default

#Adaptez biensur à vos besoins
server {
        listen 443;
        server_name domain.com;
        ssl on;
        ssl_certificate /etc/nginx/ssl/cert.domain.com.crt;
        ssl_certificate_key     /etc/nginx/ssl/domain.com.noprot.key;
        location / {
                root    /home/www/;
                index   index.php index.html index.htm;
        }
}

/etc/init.d/nginx restart


...BofBienTrès BienTop ! (Soit le premier à voter)
Loading...

Mathieu

Je suis actuellement Ingénieur Système spécialisé dans le design d'environnements cloud virtualisés. Adepte des technologies de VMware, Nutanix, Citrix ou Microsoft je propose à travers ce blog diverses astuces de troubleshooting.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *