Table des matières
Apache
Configuration
Déplacer le dossier racine hors de /var/www
Depuis debian 8, dans le fichier /etc/apache2/apache2.conf il faut mettre le dossier contenant vos sites dans une liste blanche pour pouvoir les afficher. Pour cela, dans le fichier /etc/apache2/apache2.conf, il faut repérer :
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
copier/coller le paragraphe et remplacer /var/www/ par le dossier racine de vos sites.
Cacher le nom et la version d'apache dans les dossier http
Dans le fichier
/etc/apache2/conf-enabled/security.conf
Modifier les valeurs de
ServerTokens OS
par
ServerTokens Prod
et
ServerSignature On
par
ServerSignature Off
Les virtual Hosts
Sous Debian squeeze, les fichiers de conf se trouvent dans
/etc/apache2/
A l'intérieur, se trouve deux dossiers : sites-available et sites-enabled. Le premier dossier contient les fichiers de conf des sites qui sont disponibles et le deuxième contient les fichiers de conf pour les sites activé.
On commence par vider le dossier sites-enabled puis on créer un fichier monsite.tld.conf dans le dossier site-available. Dans lequel on met :
<VirtualHost ip_local_du_serveur:80>
ServerAdmin adress_mail@admin_du.site
ServerName monsite.tld
ServerAlias www.monsite.tld
DocumentRoot /emplacement/du/dossier/du/site/
</VirtualHost>
Ensuite on vas dans le dossier site-enabled et on créé un lien symbolique de notre fichier de conf dans le dossier sites-enabled :
cd /etc/apache2/site-enabled/ ln -s ../site-available/monsite.tld.conf
Finalement, il faut éditer le fichier de conf et trouver les lignes :
NameVirtualHost *:80 ServerName
Qu'il faut modifier pour mettre :
NameVirtualHost adresse.ip.local.du_serveur:80 ServeurName adresse.ip.local.du_serveur
Pensez à redémarrer le serveur et là, ca doit marcher.
On peut ajouter autant de virtualhost que l'on souhaite. Il suffit pour ce faire de créer un autre fichier.conf dans le dossier site-available et de le lier dans site-enabled. On remplace bien sur les nom de domaine par ceux souhaités et on n'oublie pas de déclarer les domaines et sous domaines dans le dns et ca roule.
A chaque modification de la config d'apache arrêter et relancer le service apache comme ca:
/etc/init.d/apache2 restart
ssl
Certificat Obtenue grace a LetsEncrypt et Certbot
Installation des paquets nécessaires :
apt-get install python3-certbot-apache
Création de compte et demande de premier certificats :
certbot certonly --standalone --preferred-challenges http -d mascre.fr
Les certificats téléchargés se trouvent :
/etc/letsencrypt/live/Domaine_declare/
Mise à jour du certificat
Pour mettre à jour, on peut utiliser la commande suivante :
/usr/bin/certbot renew
Penser à redémarrer le service ensuite :
service apache2 reload
Pour automatiser, on peut tout mettre dans un script et utiliser crontab. Lancer le script une fois par jour, les certificats ne se renouvellerons que s'ils ont besoin de l'être.
Certificat autosigné
Vous pouvez voir comment faire pour en créer un auto signé ici
Modification du fichier de conf
Il faut aussi copier la ligne
NameVirtualHost adresse.ip.local.du_serveur:80
Et la modifier pour avoir :
NameVirtualHost adresse.ip.local.du_serveur:80 NameVirtualHost adresse.ip.local.du_serveur:443
Ensuite dans le dossier /etc/apache2/site-available il faut créer un fichier de configuration que l'on nommera https.monsite.tld.conf pour le sous domaine :
<VirtualHost 192.168.0.10:443>
ServerAdmin webmaster@localhost
ServerAlias www.monsite.tld
ServerName monsite.tld
DocumentRoot /mnt/documents/www/weave/
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/monsite.tld/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/monsite.tld/privket.pem
SSLCertificateChainFile /etc/letcencrypt/live/monsite.tld/chain.pem
</VirtualHost>
Activation du module ssl
Taper :
a2enmod ssl
Pensez à relancer le serveur après ca :
/etc/init.d/apache2 restart
htaccess
exemple de fichier .htaccess
AuthUserFile /fichier/de/pwd AuthGroupFile /dev/null AuthName "Utilisateur inconnu" AuthType Basic <LIMIT GET POST> Require valid-user </LIMIT>
Utiliser un nom de fichier de mot de passe compliqué pour éviter que quelqu'un ne le trouve et l'ouvre et ne vois ainsi la liste des utilisateurs autorisé.
Créer un fichier de mot de passe et ajouter un utilisateur :
htpasswd -c /chemin/du/fichier/de/pwd utilisateur
Ajouter les utilisateurs suivant :
htpasswd /chemin/du/fichier/de/pwd utilisateur
