CitizenZ

Blog Libre, Net & Société

Installer très facilement un serveur OpenVPN + configuration client

Rédigé par citizenz 2 commentaires

Je vous conseille tout particulièrement un excellent article sur l'art et la manière d'installer très facillement un server OpenVPN avec création de la configuration client en prime.

Angristan a mis à jour script du nom de OpenVPN-install, développé par Nyr. C’est un script qui installe automatiquement un serveur OpenVPN et qui génère la configuration client. Il a quelques fonctionnalités sympathiques comme le choix du port ou des DNS...

Testé et approuvé !

C'est par ici => https://angristan.fr/installer-facilement-serveur-openvpn-debian-ubuntu-centos/ 

Renouveller automatiquement son certificat Let's Encrypt

Rédigé par citizenz Aucun commentaire

Les certifcats SSL Let's Encrypt sont valables pour 90 jours ... seulement. Mais il est possible de les renouveler.
Il va donc falloir créer une tâche CRON "qui va bien" afin de renouveler le certificat régulièrement :

On passe en root :

sudo -s

Puis on ouvre le crontab :

crontab -e

Et on y place les lignes suvantes :

###Let's Encrypt
###Renouvellement auto du cerificat SSL
###Le 1er de chaque mois à 2h du matin
0 2 1 * * /home/mumbly/renewLetsEncrypt.sh >> /var/log/renewLetsEncrypt.log

Et on crée le fichier renewLetsEncrypt.sh que j'ai choisi de placer dans mon /home (mettez-le où vous voulez et changez le chemin). Je pars du postulat que vos fichiers Let's Encrypt sont dans /etc/letsencrypt (vous pourrez également trouver les logs dans /var/log/renewLetsEncrypt.log) :

#!/bin/sh
cd /etc/letsencrypt/
./letsencrypt-auto certonly -a webroot --email monemailamoi@gmail.com -d www.monsite.com -d monsite.com --rsa-key-size 4096 --webroot-path  /var/www/monsite.com/web --renew-by-default --agree-tos
/etc/init.d/nginx reload

On le rend exécutable :

chmod +x renewLetsEncrypt.sh

N'oubliez pas de changer l'adresse e-mail, le site web (avec www et/ou sans), et le repertoire web de votre site. On renouvelle par défaut (--renew-by-default) et on accepte "tout le reste" (--agree-tos).

PS : installation d'un certificat Let's Encrypt : voir cet article (https://www.citizenz.info/certificat-ssl-signe-gratuit-avec-let-s-encrypt-et-nginx-tuto-mondedie-fr)

Certificat SSL signé gratuit avec Let's Encrypt et Nginx

Rédigé par citizenz Aucun commentaire

Voici un moyen simple et gratuit pour passer son site en HTTPS. Il s'agit d'installer et générer un certificat via Let's Encrypt pour Nginx.
Attention : Les certificats générés ne sont valables que 90 jours. Il faudra ensuite les renouveler en réutilisant la méthode décrite dans un autre article.
Sous Debian et avec le serveur Nginx, tout se fait en 2 coups de cuillère à pot.

On commence par installer la version stable de Nginx depuis les dépots officiels :

wget -O - https://nginx.org/keys/nginx_signing.key | apt-key add -
echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx" > /etc/apt/sources.list.d/nginx.list
apt update
apt install nginx

On ajoute ensuite les backports Debian puis on installe letsencrypt :

echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
apt update && apt full-upgrade -y
apt install -t jessie-backports letsencrypt
service nginx stop

Maintenant, il s'agit de demander un certificat pour notre site (notre nom de domaine). Rien de compliqué :

letsencrypt certonly -d www.domaine.tld -d domaine.tld --agree-tos -m contact@domaine.tld --rsa-key-size 4096 --standalone
service nginx start

Maintenant que vos certificats ont été générés et placés dans /etc/letsencrypt/live/monsite.com, on va configurer le fichier du vhost Nginx (fichier .conf dans /etc/nginx/conf.d/).

Voici un exemple complet :

server {
    listen 80;
    server_name monsite.com www.monsite.com;
    return 301 https://www.monsite.com$request_uri;
    access_log /dev/null;
    error_log /dev/null;
}

server {
    listen 443 ssl http2;
    server_name monsite.comwww.monsite.com;

    if ($host = monsite.com) {
        return 301 https://www.monsite.com$request_uri;
    }

    root /var/www/monsite.com/web;

    index index.html index.htm index.php;

    # HTTPS : mise en place de la config et des certificats
    ssl_certificate /etc/letsencrypt/live/www.monsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.monsite.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/www.monsite.com/chain.pem;

    ssl_protocols TLSv1.2;
    ssl_ecdh_curve prime256v1;
    ssl_ciphers EECDH+AESGCM:EECDH+AES;
    ssl_prefer_server_ciphers on;
    resolver 80.67.169.12 80.67.169.40 valid=300s;
    resolver_timeout 5s;

    ssl_session_cache shared:SSL:10m;
    add_header Strict-Transport-Security "max-age=15768000";

    location / {
        try_files $uri $uri/ =404;
    }

    access_log /var/www/monsite.com/logs/access.log combined;
    error_log /var/www/monsite.com/logs/error.log error;

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

}

On redémarre nginx (service nginx restart) et admirez le "zoli" cadenas vert dans votre barre d'adresse. ON peut lire (en passant la souris sur le cadenas) : "Vérifié par Let's Encrypt) !

Fil RSS des articles de ce mot clé