Archives de catégorie : SSL

Nginx Https

Redirection https

Dans le fichier du vhost :

server {
  listen 80 default_server;
  listen [::]:80;
  server_name xxxx.xxxx.fr;
  rewrite ^ https://$server_name$request_uri? permanent;
} 
ou return 301 https://$server_name$request_uri;

et le bloc ssl correspondant:

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name xxxx.xxxx.fr;
  

[ssl on;]

ssl_certificate /etc/letsencrypt/live/xxxx.xxxx.fr;/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/xxxx.xxxx.fr;/privkey.pem; }

Let’sencrypt

 location ^~ /.well-known {
            alias /var/www/site/.well-known;
            default_type "text/plain";
            allow all;
    }

    location = /.well-known/acme-challenge/ {
             return 404;
    }
certbot certonly --webroot -w /var/www/www.site.fr -d www.site.fr

Renouvellement automatique

crontab -e
47 4,16   * * *   root   certbot renew --quiet --renew-hook "service nginx reload"

SSL avec OCSP

  server {
    listen 443 default;
    server_name xxxxx.xxx.fr;
    
    access_log /var/log/nginx/xxxx.xxxx.fr_access.log;
    error_log  /var/log/nginx/xxxx.xxxx.fr_error.log;
    
    ssl on;
    ssl_certificate     /etc/ssl/certs/xxxxx.xxxx.fr.crt;
    ssl_certificate_key /etc/ssl/private/xxxx.xxxx.fr.key;
    
    #OCSP 
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 9.9.9.9 8.8.8.8 valid=300s;
    resolver_timeout 3s;
  }

test

openssl s_client -connect site.fr:443 -tls1 -tlsextdebug -status

Certificats SSL

Génération de certificats Let’s encrypt

apt install certbot python-certbot-nginx
certbot --authenticator webroot --installer nginx

ajout dans la crontab pour renouvellemnt automatique

crontab -e -u root 

47 4,16   * * *   root   certbot renew --quiet --renew-hook "service nginx reload"

Gestion manuelle

certbot delete

Génération de certificats self-signed

Clé privée de 4096 bits

openssl genrsa -out tonsith.org.key 4096

Certificat

openssl req -new -x509 -days 5000 -key tonsith.org.key -out  tonsith.org.crt

Génération du CSR

openssl x509 -x509toreq -in tonsith.org.crt -out tonsith.org.csr -signkey tonsith.org.key

Vérification

openssl req -text -noout -verify -in tonsith.org.csr

Afficher les informations du certificat

openssl x509 -noout -text -in tonsith.org.crt

Droits sur les .key et .crt

  chmod 400 tonsith.org.*  

test de la connexion

openssl  s_client -connect server_fdqn:port

Autres méthodes :

Création de la clé privée de 2048 bits et la request ( dans le but de faire générer un certificat signé par une autorité de certification. )

openssl req -newkey rsa:2048 -nodes -out www.example.com.csr -keyout www.example.com.key

Si on veut la signer soit même et générer le certificat valide 365 jours :

openssl x509 -req -days 365 -in www.example.com.csr -signkey www.example.com.key -out www.example.com.crt