Mémo Pi : Installation d'un Serveur Apache

Table des Matières

Aujourd’hui, billet-note sur la mise en place d’un serveur web Apache sur notre tendre Raspberry Pi 3. Il parait qu’Apache serait plus lourd que Nginx ou encore Lighttpd. Effectivement quelques MOs en plus dans la RAM mais je n’ai pas observé de ralentissements particuliers et, cerise sur le gateau, PHP marche plus facilement avec Apache sans avoir besoin de mettre le nez dedans.

Installation et optimisation d’Apache

apt-get install apache2

Ensuite il faut avec un Raspberry Pi modifier quelques paramètres dans la configuration d’apache pour qu’il ne bouffe pas trop de RAM sur notre Single-Board.

<IfModule mpm_event_module>
StartServers		 4
MinSpareThreads		 1
MaxSpareThreads		 8
ThreadLimit		 16
ThreadsPerChild		 4
MaxRequestWorkers	 50
MaxConnectionsPerChild   0
</IfModule>
<IfModule mpm_prefork_module>
StartServers		 4
MinSpareServers		 1
MaxSpareServers		 4
MaxRequestWorkers	 50
MaxConnectionsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
StartServers		 4
MinSpareThreads		 1
MaxSpareThreads		 8
ThreadLimit		 16
ThreadsPerChild		 4
MaxRequestWorkers	 50
MaxConnectionsPerChild   0
</IfModule>

SSL et sécurité

Certificat SSL

En matière de certifications SSL le duo Certbot/Letsencrypt est devenu une référence depuis quelques temps. Le soucis que j’ai avec Certbot c’est qu’il demande pas mal de dépendances Python et j’aimerai plutôt avoir quelque-chose de léger.

La solution : ACME.SH

Pour l’installer rien de plus simple : wget -O - https://get.acme.sh | sh

ensuite le script s’utilise avec la commande acme.sh

Avec la récente faille découverte avec RSA j’ai décidé d’utiliser des clés utilisant des courbes elliptiques (ec). De mes lectures je comprends que pour le moment une clé en 384 bits est assez robuste tout en épuisant pas trop le processeur.

Alors pour générer un certificat il faudra entrer :

acme.sh --issue -d nomdedomain.truc -w /emplacement/racine/serveur --keylength ec-384

Il faut maintenant inscrire les fichiers dans la configuration d’Apache.

Les fichiers générés par acme.sh se trouvent dans le dossier /root/.acme. Pour une meilleure organisation je les ai déplacé dans /etc/apache2/ssl

acme.sh --install-cert -d raspbridouz.duckdns.org \
--cert-file /etc/apache2/ssl/raspbridouz.duckdns.org-cert.pem \
--key-file /etc/apache2/ssl/raspbridouz.duckdns.org-key.pem \
--fullchain-file /etc/apache2/ssl/letsencrypt.pem \
--reloadcmd "service apache2 force-reload"

HTPS, Cypher et cie

Pour une meilleure sécurisation durant le transfert des données serveur/client j’ai un peu fouiné sur le web et j’en suis ressorti avec la configuration suivante.

Protocols h2 h2c http/1.1
H2Push          on
H2PushPriority  *                       after
H2PushPriority  text/css                before
H2PushPriority  image/jpeg              after   32
H2PushPriority  image/png               after   32
H2PushPriority  application/javascript  interleaved
SSLProtocol all -SSLv2 -SSLv3 -TLSv1.1 -TLSv1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384
SSLHonorCipherOrder     on
SSLCompression off
SSLSessionTickets off
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLUseStapling          on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache        shmcb:/var/run/ocsp(128000)
SSLOpenSSLConfCmd ECDHParameters secp384r1
SSLOpenSSLConfCmd Curves secp384r1
    SSLEngine on

    SSLCertificateFile /etc/apache2/ssl/raspbridouz.duckdns.org-cert.pem
    SSLCertificateKeyFile /etc/apache2/ssl/raspbridouz.duckdns.org-key.pem
    SSLCertificateChainFile "/etc/apache2/ssl/letsencrypt.pem"

    SSLCACertificatePath "/etc/apache2/ssl/"
    SSLCACertificateFile "/etc/apache2/ssl/letsencrypt.pem"

Avec ça j’obtiens un beau 100% avec cryptcheck

Voilà, le serveur est maintenant opérationnel, je peux donc pleinement l’utiliser.

Billets en liens :

Poster un commentaire

Nom :

Email (optionel):

Site Web (optionel):

Quelle est la 3e lettre du mot blog ?

Votre message :

Pas de commentaires pour le moment