Astuces pour httpd

man

Je ne peux m’empêcher de vous inciter à lire le man httpd.conf. On y trouve tout ce qui est écrit ici, et plus encore.

Journaux

Vous pouvez choisir un fichier spécifique où seront enregistrés les logs dans la section de chaque site. Ils sont par défaut enregistrés dans le dossier /var/www/logs.

log access "nom_du_site.log"

Pour désactiver les logs, écrivez no log.

Accès restreint par mot de passe

Pour protéger l’accès à un site ou une partie du site par un mot de passe, utilisez la commande htpasswd pour créer un fichier d’accès :

# htpasswd /var/www/secret.htpw login

Remplacez login par le nom d’utilisateur que vous souhaiterez utiliser, puis définissez un mot de passe solide. Recommencez à chaque fois que vous voulez ajouter un nouvel utilisateur.

Modifiez les permissions sur ce fichier :

# chown www /var/www/secret.htpw
# chmod 400 /var/www/secret.htpw

Enfin, dans la configuration de httpd, pour protéger l’accès au sous-dossier /dossier_protege/* :

location "/dossier_protege/*" {
    authenticate "Acces restreint" with "/secret.htpw"
}

Remarquez que l’emplacement du fichier secret.htpw est relatif au chroot de httpd, on fait comme si /var/www était /.

Pour protéger un site complet, indiquez :

location "/*"

Ou alors, mettez l’instruction “authenticate” au tout début de la configuration sans jamais préciser de “location”.

Index des fichiers

Afin de lister automatiquement dans le navigateur les fichiers présents dans un dossier, ajoutez dans le fichier /etc/httpd.conf :

location "/dossier/*" {
  directory auto index
}

Inclusions de fichiers de configuration

Si vous avez plusieurs sites, ça peut vite être le bazar de tout configurer dans le fichier /etc/httpd.conf. Il vous est possible de découper la configuration dans plusieurs fichiers avec l’instruction include :

    include "/etc/httpd/site1.conf"
    include "/etc/httpd/site2.conf"

TLS

Pour accélérer les futures négociations TLS si vous servez votre site en https, vous pouvez ajouter ces quelques options :

hsts preload
tls {
  certificate "/etc/ssl/chezmoi.tld-fullchain.pem"
  key "/etc/ssl/private/chezmoi.tld.key"
  ticket lifetime default
}

Page suivante →