Vous êtes ici

tutoriel

Installer un certificat électronique sur un serveur web derrière un reverse proxy avec ubuntu, apache et certbot

Si vous avez plusieurs serveurs serveurs web sur un votre réseau local et que vous souhaitez que plusieurs d'entre eux soient accessibles depuis internet par le même port (au hasard 80 ou 443 par exemple), il est fort probable que vous fassiez appel à un reverse-proxy, qui est un moyen somme toute assez commode pour y parvenir.

De même si vous souhaitez chiffrer le contenu publié en SSL/TLS, certbot est devenu ces dernières années un incontournable, de par sa simplicité et sa gratuité.

Faire que les deux fonctionnent nécessite bien sûr une configuration particulaire, voici donc comment procéder dans le cas ou vous avez créé un sous-domaine (A record) chez votre fournisseur de noms de domaine :

  • le nom du sous domaine sera : sous.domaine.com
  • l'adresse ip du serveur sur le réseau local : 192.168.1.123
  • l'adresse ip du serveur web dans la DMZ : 192.168.1.210
  • le port de l'application sur le serveur web local : 9000
  • la racine des fichiers du serveur web local : /racine/des/fichiers/de/mon/serveurweb (généralement sous ubuntu ou debian : /var/www ou /var/www/html etc.)

Du côté de la machine qui va servir de proxy inverse (reverse proxy) accessible par internet (en DMZ) :

Créer un nouveau fichier de configuration pour apache :

touch /etc/apache2/sites-available/mon-reverse-proxy1.conf
nano /etc/apache2/sites-available/mon-reverse-proxy1.conf

Et y ajouter :

# Si ce n'est déjà fait (peu probable par défaut...)
# NameVirtualHost *:80
# Listen 80
# NameVirtualHost *:443
# Listen 443
# Surtout :

# Nécessaire pour la validation du certificat électronique
<VirtualHost *:80>
ServerName nom.de.sous.domaine
ServerAdmin mon.adresse@e.mail
    <LocationMatch "/*">
    order allow,deny
    allow from all
    Satisfy any
    ProxyPass http://192.168.1.123
    ProxyPassReverse http://192.168.1.123
    </LocationMatch>
</virtualHost>

<VirtualHost *:443>
ServerName nom.de.sous.domaine
ServerAdmin mon.adresse@e.mail
ProxyRequests Off
ProxyPreserveHost On
SSLEngine on
SSLProxyEngine On
SSLProxyCheckPeerExpire On
SSLProxyVerifyDepth     10
SSLCertificateFile      /etc/letsencrypt/live/videos.espitallier.net/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/videos.espitallier.net/privkey.pem
    <LocationMatch "/*">
    order allow,deny
    allow from all
    Satisfy any
    ProxyPass http://192.168.1.123:9000
    ProxyPassReverse http://192.168.1.123:9000
    </LocationMatch>
</virtualHost>

Enregistrer le fichier puis :

sudo a2ensite mon-reverse-proxy1
sudo service apache2 restart

Du côté du serveur web de l'application (192.168.1.123) pour créer le certificat :

# Si certbot n'est pas encore installé :
# sudo apt install certbot # dans le cas de debian ou ubuntu par exemple
# ensuite
sudo certbot certonly

Répondre aux questions :

  • 2: Place files in webroot directory (webroot)
  • Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): sous.domaine.com
  • Input the webroot for sous.domaine.com: (Enter 'c' to cancel): /racine/des/fichiers/de/mon/serveurweb

Automatiser le renouvellement du certificat

Création du script

sudo nano /usr/local/sbin/certbot-renew.sh

Auquel on ajoute

sudo certbot -q renew
# Par clé SSH et à supposer que le dossier 192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/ a été créé
sudo scp /etc/letsencrypt/live/sous.domaine.com/fullchain.pem sudouser@192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/
sudo scp /etc/letsencrypt/live/sous.domaine.com/privkey.pem sudouser@192.168.1.210:/etc/letsencrypt/live/sous.domaine.com/

On le rend exécutable

chmod +x /usr/local/sbin/certbot-renew.sh

Autoriser la copie par SSH sans mot de passe

ssh-keygen -t rsa
cat .ssh/id_rsa.pub | ssh root@192.168.1.100 'cat >> .ssh/authorized_keys'

Planification du script

sudo crontab -e
# Une fois par mois
00   5   *   1   *           /usr/local/sbin/certbot-renew.sh

Accélérer la lecture d'un podcast ou d'une émission de radio sur le web

Illustration

Contrairement à Youtube - par exemple - toutes les plateformes et sites ne permettent pas d'augmenter la vitesse de lecture des vidéos ou émissions de radio qu'ils proposent. Je propose donc une commande bash simple sous GNU/Linux pour palier à ce manque en utilisant seulement 2 outils supplémentaires (s'ils ne sont pas déjà installés pour vous, ce qui serait dommage compte tenu de tout ce qu'ils permettent de faire) à savoir youtube-dl et le mieux connu VLC

Installation des prérequis

pour les systèmes à base de Fedora (RedHat, CentOS, etc.)

sudo dnf install youtube-dl vlc

pour les systèmes à base de Debian (Ubuntu, etc.)

sudo apt install youtube-dl vlc

Configuration de la commande

Modifier le fichier ~/.bashrc

nano ~/.bashrc

En lui ajoutant les lignes

function lireplusvite { youtube-dl -o - "$2" | vlc --rate "$1" - ; }
export -f lireplusvite

Utilisation de la commande

lireplusvite <vitesse> <URL>

Exemple :

lireplusvite 1.5 http://l.url.de.la.page

Alternative sans pipe

vlc --rate 1.5 "$(youtube-dl --get-url --format best '$1')

Et avec la commande "play"

play "$(youtube-dl --get-url --format best '$1')" tempo "$1"

Réinstaller fusecompress après une mise à jour Ubuntu 11.10 Oneiric Ocelot en 12.04 Precise Pangolin

Suite à une mise à jour d'Ubuntu 11.10 Oneiric Ocelot vers 12.04 Precise Pangolin, via un

do-release-upgrade -p

... qui s'est au demeurant très bien passée (comme toujours en ce qui me concerne), j'ai tout de même eu un petit souci avec l'utilitaire de compression "fusecompress" qui visiblement ne serait plus supporté par Canonical ou du moins plus dans les dépôts officiels (erreur ?).

Je me suis donc lancé dans sa réinstallation, une opération ma foi des plus simples, tout d'abord je me suis rendu sur la page dédiée au paquet liblzma2 32 bits de la distribution Oneiric Ocelot dont dépend fusecompress, j'ai copié l'URL d'une des instances dudit paquet sur un des miroirs et à l'aide de l'utilitaire wget l'ai rapidement récupéré

wget http://ftp.halifax.rwth-aachen.de/ubuntu//pool/main/x/xz-utils/liblzma2_...

une fois fait il suffit de l'installer

dpkg -i liblzma2_5.0.0-2_i386.deb

Ensuite il suffit de faire de même avec le paquet de l'utilitaire fusecompress en lui même (toujours en 32 bits)

wget http://ftp.halifax.rwth-aachen.de/ubuntu//pool/universe/f/fusecompress/f... dpkg -i fusecompress_2.6.git913897f4-1ubuntu1_i386.deb

And voilà, nul doute que cette façon de procéder vous aidera, dans d'autres circonstances pour d'autres logiciels. Le seul inconvénient - on le comprend facilement - sera que ces paquets ne seront pas mis à jour lors des "aptitude update" ou autres systèmes de mise à jour automatique, vous êtes prévenus...

Pages

Subscribe to RSS - tutoriel