Placer un certificat Let’s Encrypt dans un ReadyNAS de Netgear

Le principal intérêt d’y installer un certificat Let’s Encrypt est de protéger les accès au NAS par le web. Bien sûr on peut déjà le faire par défaut avec un certificat auto-signé généré automatiquement par le NAS, mais dans ce cas votre navigateur vous mettra systématiquement en garde contre ce certificat. Solution pour éviter cela: investir dans un certificat signé par une autorité de confiance. Cela représentait un coût insupportable pour une utilisation familiale.
Heureusement, Let’s Encrypt est arrivé et permet d’accéder à ce type de fonctionnalités gratuitement. Pour le bien d’internet et de nos données.

Vous l’avez compris, l’EFF et Let’s Encrypt ont besoin d’encouragements.

Comment s’y prendre concrètement?

On commence par activer le ssh dans la console d’administration du NAS. Ce n’est pas recommandé par le constructeur, ni par moi-même d’ailleurs, et si vous ne savez pas ce que vous faites, mieux vaut vous arrêter là.

On en profite pour télécharger le fichier de clé correspondant qui servira plus tard pour se connecter au nas.

On se loggue alors en ssh sur le nas à l’aide du compte root et du mot de passe de l’admin.

# apt-get install nano
# cd /opt
# mkdir letsencrypt
# cd letsencrypt
# wget https://dl.eff.org/certbot-auto
# chmod a+x certbot-auto
# ./certbot-auto --help all
# apt-get install libaugeas-dev
# service apache2 stop
# ./certbot-auto certonly --preferred-challenges tls-sni-01 -d mondomaine.com

Opter pour le choix 1.
Entrer son email valide.
Lire et accepter les « terms of service »
# cd /etc/frontview/apache
# cp apache2.pem apache2.pem.orig
# cp ssl.conf ssl.conf.orig
# nano ssl.conf

Trouver la ligne:
"SSLCertificateFile /etc/frontview/apache/apache2.pem"
Placer en-dessous cette ligne:
"SSLCertificateChainFile /etc/frontview/apache/chain.pem"
Sauver le fichier ssl.conf
# rm apache2.pem
# cat /etc/letsencrypt/live/mondomaine.com/privkey.pem >> apache2.pem
# cat /etc/letsencrypt/live/mondomaine.com/cert.pem >> apache2.pem
# cp /etc/letsencrypt/live/mondomaine.com/chain.pem chain.pem
# service apache2 start

Mettre à jour le certificat
# cd /opt/letsencrypt
# nano script_renv

Ajouter ces lignes au script:
#!/bin/sh
rm /etc/frontview/apache/apache2.pem
cat /etc/letsencrypt/live/mondomaine.com/privkey.pem >> /etc/frontview/apache/apache2.pem
cat /etc/letsencrypt/live/mondomaine.com/cert.pem >> /etc/frontview/apache/apache2.pem
cp /etc/letsencrypt/live/mondomaine.com/chain.pem /etc/frontview/apache/chain.pem
# chmod 755 script_renv

Renouveler le certificat (tous les 3 mois)
# /opt/letsencrypt/certbot-auto renew --standalone --pre-hook "service apache2 stop" --post-hook "service apache2 start" --renew-hook "/opt/letsencrypt/script_renv"

Sources