# 🔑 Installation d'un certificat auto-signĂ© OpenSSL avec nginx

Dans 
PubliĂ© 2021-10-22

# 🔐 GĂ©nĂ©rer le certificat et la clĂ©

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

# 📝 Éditer le fichier de configuration nginx

sudo nano /etc/nginx/sites-enabled/default
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

/etc/nginx/sites-enabled/default
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):

cat /etc/nginx/sites-enabled/default
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

DerniĂšre modification: 19/09/2022 - 14h00