#
🔑 Installation d'un certificat auto-signĂ© OpenSSL avec nginx
Si vous configurez votre serveur directement en root. N'oubliez pas de retirer le sudo
de chaque commande.
🔄 Si vous avez mis un mot de passe au compte root, la commande sudo
ne sera pas acceptée.
Connectez-vous directement en root pour exécuter les commandes.
➡️ Vous pouvez aussi, rĂ©installer votre systĂšme en laissant le mot de passe root vide, lors de l'installation.
sudo
s'installera et fonctionnera correctement.
#
🔐 GĂ©nĂ©rer le certificat et la clĂ©
Recommendation sécurité
Il est recommandé d'utiliser ed25519
qui correspond au standard actuel en terme de sécurité.
Toutefois il n'est pas compatible partout, surtout sur les systĂšmes legacy.
Dans ce cas RSA
est utilisé, il est préférable de mettre une longueur de clé conséquente.
sudo openssl req -x509 -days 365 -out mycert.crt -nodes -newkey rsa:4096 -keyout mykey.key
Renseigner les différentes informations du certificat
Generating a RSA private key
..................................+++++
........................................................+++++
writing new private key to 'mykey.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:RHONE
Locality Name (eg, city) []:maville
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CONTACTIT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:web.it.fr
Email Address []:contactit.yarka@slmail.me
Common Name
doit ĂȘtre renseignĂ© le nom de domaine !
OpenSSL a gĂ©nĂ©rĂ© le certificat et la clĂ© dans le rĂ©pertoire ou vous ĂȘtes au moment ou vous avez tappĂ© la commande.
Vous pouvez les déplacer/renommer comme bon vous semble.
#
📝 Ăditer le fichier de configuration nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
en haut du fichier se trouve un block de configuration server.
Il écoute sur le port 80:HTTP
qui pointe vers /var/www/html
puis une page d'accueil définie dans index
ligne 5.
Comme nous allons ajouter un block de configuration server qui écoute sur le port 443:HTTPS
, il nous faut le changer pour éviter des conflits:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
Ligne 5
Redirige les requĂȘtes du port 80 sur le port 443.
Ajouter la configuration SSL Ă la fin du fichier
server {
listen 443 ssl;
server_name _;
root /var/www/html;
ssl_certificate /var/www/sites/client1/mycert.crt;
ssl_certificate_key /var/www/sites/client1/mykey.key;
index index.html index.htm index.nginx-debian.html;
}
Ligne 4
Remplacer le chemin par le votre.
Ligne 5-6
Remplacer les chemins par les votres.
Le fichier de configuration ressemble alors à ça (sans les commentaires):
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name _;
root /var/www/html;
ssl_certificate /var/www/sites/client1/mycert.crt;
ssl_certificate_key /var/www/sites/client1/mykey.key;
index index.html index.htm index.nginx-debian.html;
}
#
🔄 RedĂ©marrer nginx:
sudo service nginx restart
Vous pouvez maintenant consulter votre site web avec votre certificat auto-signé (https://monsite.local par exemple).
DerniĂšre modification: 19/09/2022 - 14h00