Déployer un serveur Duniter pour écrire dans la blockchain

Déployer un serveur Duniter pour écrire dans la blockchain

6 janvier 2019 Non Par Paidge

IV. 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 :

  1. Télécharger et installer le paquet Duniter
  2. Automatiser le lancement de Duniter au démarrage de la machine
  3. Configurer son nœud
  4. Configuration de Apache
  5. Configuration de la box / du routeur
  6. Utilisation courante du serveur

Pages : 1 2 3 4 5 6 7