Déployer un serveur Duniter pour écrire dans la blockchain
6 janvier 2019IV. Configuration de Apache
Pour plus de sécurité, nous utiliserons le protocole SSL. Donc nous allons réécrire toutes les requêtes HTTP (port 80) sur duniter.mondomaine.fr en HTTPS (port 443). Bien sûr, cela nécessite un certificat. Personnellement, j’utilise Let’s Encrypt.
Ensuite, Apache servira de ReverseProxy pour les deux protocoles (BMA et WS2P).
On active les modules Apache dont on aura besoin :
sudo a2enmod ssl proxy_http headers rewrite
On crée un fichier de virtualHost avec le domaine précisé dans la configuration de Duniter:
sudo nano /etc/apache2/sites-available/duniter.mondomaine.fr.conf
Copiez-y la configuration ci-dessous en l’adaptant à vos besoins puis enregistrez le fichier :
<VirtualHost *:80>
ServerName duniter.mondomaine.fr
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
</IfModule>
</VirtualHost>
<VirtualHost *:443>
ServerName duniter.mondomaine.fr
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteCond %{REQUEST_URI} ^/ws2p [NC]
RewriteRule .* ws://localhost:20901%{REQUEST_URI} [P,QSA,L]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteCond %{REQUEST_URI} ^/ws [NC]
RewriteRule .* ws://mon-ip.publique:10902%{REQUEST_URI} [P,QSA,L]
</IfModule>
SSLProxyEngine on
ProxyPass /ws2p http://127.0.0.1:20901
ProxyPassReverse /ws2p http://127.0.0.1:20901
ProxyPass / http://mon-ip.publique:10902/
ProxyPassReverse / http://mon-ip.publique:10902/
ProxyRequests Off
ProxyPreservehost On
RequestHeader set X-Forwarded-Proto "https"
RequestHeader unset If-Modified-Since
RequestHeader unset If-None-Match
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# Activation du SSL
SSLEngine On
# Activation de tous les protocoles sécurisés (TLS v1.0, TLS v1.1 et TLS v1.2) tout en désactivant les protocoles non sécurisés (SSL v2 et v3)
SSLProtocol All -SSLv3 -SSLv2
# On active les méthodes de chiffrement, et on désactive les méthodes de chiffrement non sécurisés (par la présente d'un !)
SSLCipherSuite HIGH:!aNULL:!MD5:!ADH:!RC4:!DH
# Le navigateur devra choisir une méthode de chiffrement en respectant l'ordre indiquée dans SSLCipherSuite
SSLHonorCipherOrder on
# Chemin vers le certificat SSL de votre nom de domaine
SSLCertificateFile "/etc/letsencrypt/live/duniter.mondomaine.fr/cert.pem"
# Chemin vers la clée privée du certificat SSL de votre nom de domaine
SSLCertificateKeyFile "/etc/letsencrypt/live/duniter.mondomaine.fr/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/duniter.mondomaine.fr/chain.pem"
</VirtualHost>
Activez le virtualHost et redémarrez Apache :
sudo a2ensite duniter.mondomaine.fr.conf
sudo systemctl reload apache2
sudo systemctl restart apache2
Sommaire :
- Télécharger et installer le paquet Duniter
- Automatiser le lancement de Duniter au démarrage de la machine
- Configurer son nœud
- Configuration de Apache
- Configuration de la box / du routeur
- Utilisation courante du serveur
Les commentaires sont fermés.