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