Guide des technologies

AWStats : SSL, cron et bonnes pratiques

6 min read Administration système Mis à jour 16 Sep 2025
AWStats : SSL, cron et bonnes pratiques
AWStats : SSL, cron et bonnes pratiques

AWStats peut être servi sur HTTPS, automatisé par cron et optimisé pour la performance. Ce guide explique comment créer un certificat auto-signé, configurer Apache et AWStats pour SSL, automatiser les mises à jour avec cron et réduire la charge (GeoIP). Il inclut des alternatives, une checklist rôle-par-rôle et des mesures de sécurité.

Important — Si possible préférez un certificat signé par une autorité reconnue (ex. Let’s Encrypt) pour éviter les avertissements navigateur. Le guide ci-dessous montre aussi la méthode auto-signée utile pour des environnements de test.

Préparation et prérequis

  • Assurez-vous que le serveur web (Apache) supporte SSL/TLS (module mod_ssl).
  • OpenSSL doit être installé pour générer les clés/certificats.
  • Conservez les chemins de fichier natifs fournis (/etc/pki/tls/certs/, /etc/pki/tls/private/, /var/www/html/, etc.).
  • Définitions rapides : SSL/TLS — protocole pour chiffrer le trafic HTTP ; cron — planificateur de tâches Unix.

Configurer AWStats pour HTTPS

Si les tactiques de base (accès restreint via .htaccess, authentification) ne suffisent pas, servez AWStats sur HTTPS. Avant toute configuration, vérifiez que votre serveur web écoute le port 443 et que mod_ssl est installé.

Créer un certificat

OpenSSL doit être présent sur le serveur. Sur CentOS/RHEL vous pouvez installer mod_ssl et ensuite générer les clés. Positionnez-vous dans /etc/pki/tls/certs/ et suivez ces étapes :

yum install mod_ssl

Créer une clé privée RSA pour le serveur :

# openssl genrsa -des3 -out server.key 1024

Sortie d’exemple lors de la génération :

Generating RSA private key, 1024 bit long modulus  
Enter pass phrase for server.key:  
Verifying - Enter pass phrase for server.key:

Inspecter la clé :

# openssl rsa -noout -text -in server.key
Enter pass phrase for server.key:

Créer une CSR (Certificate Signing Request) :

# openssl req -new -key server.key -out server.csr

Exemple des invites (remplissez selon votre organisation) :

Country Name (2 letter code) [GB]:JO  
State or Province Name (full name) [Berkshire]:State  
Locality Name (eg, city) [Newbury]: Your Location  
Organization Name (eg, company) [My Company Ltd]:My Company  
Organizational Unit Name (eg, section) []:  
Common Name (eg, your name or your server's hostname) []:ns.somewhere.com  
Email Address []: [email protected]  
Please enter the following 'extra' attributes  
to be sent with your certificate request  
A challenge password []: If you hit enter here, it will be empty  
An optional company name []:

Signer la CSR pour créer le certificat auto-signé (valable 365 jours dans cet exemple) :

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Exemple de sortie :

Signature ok

subject=/C=JO/ST=State/L=Your Location/O=My Company/CN=ns.somewhere.com/emailAddress= [email protected] Getting Private key

Copiez les fichiers vers les emplacements standards :

# cp server.crt /etc/pki/tls/certs/  
# cp server.key /etc/pki/tls/private/  
# cp server.csr /etc/pki/tls/private

Appliquez des permissions strictes :

# chmod go-rwx /etc/pki/tls/certs/server.crt  
# chmod go-rwx /etc/pki/tls/private/server.key  
# chmod go-rwx /etc/pki/tls/private/server.csr

Configurer Apache pour SSL

Éditez votre httpd.conf (ou le fichier de configuration SSL dédié) et ajoutez :

SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key

Vérifiez que le serveur écoute le port 443 :

netstat -aunt

Exemple de sortie utile :

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN  
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN  
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN

Forcer AWStats vers HTTPS via .htaccess

Dans le répertoire racine web (/var/www/html/ ou équivalent) éditez le .htaccess et ajoutez (modifiez le domaine) :

# redirect awstats to https
RewriteCond %{REQUEST_URI} ^/awstats(.*)
RewriteRule ^/rawe/awstats(.*)$ https://example.com/awstats$1 [R,L]

Configurer AWStats pour générer des liens HTTPS

Dans votre fichier awstats.site.conf, assurez-vous que l’option UseHTTPSLinkForUrl reflète la présence de SSL :

UseHTTPSLinkForUrl
Version : 4.0+
   
# When AWStats build HTML links in its report pages, it starts thoose link
# with "http://". However some links might be HTTPS links, so you can enter
# here the root of all your HTTPS links. If all your site is a SSL web site,
# just enter "/".
# This parameter is not used if ShowLinksOnUrl is 0.
# Example: "/shopping"
# Example: "/"
# Default: ""
#
UseHTTPSLinkForUrl=""

Modifiez UseHTTPSLinkForUrl par “/“ ou par votre préfixe HTTPS si nécessaire.

Automatiser la mise à jour d’AWStats avec cron

Mettre à jour AWStats manuellement est chronophage. Créez une tâche cron pour exécuter awstats_updateall.pl ou awstats.pl selon votre configuration.

Éditez la crontab :

$ crontab -e

Ajoutez une ligne (exemple : mise à jour quotidienne à 09:45) :

45 9 * */usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"

Cette tâche mettra à jour AWStats chaque jour à 09:45. -confdir=”/etc” indique où se trouvent vos fichiers de config AWStats.

Important : laissez une ligne vide à la fin du fichier crontab avant d’enregistrer.

Vous pouvez aussi utiliser logrotate pour appeler la mise à jour lors de la rotation des logs Apache. Exemple dans /etc/logrotate.d :

/var/log/httpd/*log {
missingok
notifempty
sharedscripts
prerotate
/var/www/awstats/awstats.pl-update -config=somesite.net
postrotate
/etc/init.d/httpd reload > /dev/null 2>&1 || true
endscript

Cron pour plusieurs fichiers de configuration

Si vous gérez plusieurs sites, préférez awstats_updateall.pl qui met à jour tous les fichiers de configuration dans un répertoire donné :

15 4 * * * perl $HOME/awstats/tools/awstats_updateall.pl now -awstatsprog=$HOME/awstats/cgi-bin/awstats.pl -configdir=$HOME/awstats/cgi-bin/

Assurez-vous que awstats.pl est exécutable pour l’utilisateur qui lance la tâche cron :

$ chmod 504 awstats/cgi-bin/awstats.pl

Cela permet au cron d’exécuter awstats.pl correctement.

Configurer des modules additionnels (GeoIP)

La résolution des noms d’hôte via DNS peut devenir coûteuse sur des sites à fort trafic. AWStats peut utiliser une base GeoIP pour associer IP → pays sans appels DNS fréquents, ce qui réduit la charge.

  • Alternative légère : exportez régulièrement un fichier dns.txt via Apache et configurez AWStats pour l’utiliser.
  • Option performante : installez GeoIP/GeoLite et le plugin AWStats correspondant. Consultez la documentation officielle GeoIP pour les étapes précises et la mise à jour des bases.

Approches alternatives

  • Let’s Encrypt — remplacez le certificat auto-signé par un certificat gratuit et reconnu pour supprimer les avertissements navigateur.
  • Reverse proxy TLS (Nginx ou CDN) — terminez TLS en frontal et laissez Apache en interne si vous préférez centraliser les certificats.
  • Hébergement managé — certains fournisseurs intègrent AWStats et s’occupent du SSL et des tâches cron.

Sécurisation et bonnes pratiques

  • Ne laissez pas AWStats accessible publiquement sans authentification. Protégez /awstats par authentification HTTP ou par restriction IP.
  • Restreignez l’accès à /etc/pki/tls/private/ (permissions 600 et propriétaire root).
  • Renouvelez ou remplacez les certificats avant leur expiration. Pour Let’s Encrypt, configurez un renouvellement automatique (certbot).
  • Vérifiez les logs après déploiement pour détecter des erreurs TLS ou des scripts non exécutés.

Checklist rôle-par-rôle

  • Administrateur système

    • Installer mod_ssl et OpenSSL.
    • Générer et protéger clés/certificats.
    • Tester écoute port 443 et rechargement Apache.
  • Développeur/DevOps

    • Ajouter redirections .htaccess.
    • Mettre à jour UseHTTPSLinkForUrl si besoin.
    • Scripter la mise à jour cron et vérifier les permissions.
  • Responsable sécurité

    • Valider le type de certificat (auto-signé vs CA).
    • S’assurer de la protection par mot de passe ou IP pour AWStats.

Mini-méthodologie de déploiement (5 étapes)

  1. Installer mod_ssl/OpenSSL et préparer le répertoire des certificats.
  2. Générer la clé, CSR, et signer (ou obtenir un certificat CA).
  3. Déployer les fichiers dans /etc/pki/tls/* et fixer les permissions.
  4. Configurer Apache, recharger le service, vérifier port 443.
  5. Ajouter redirection .htaccess et config AWStats, automatiser via cron.

Quand ça échoue — diagnostics rapides

  • Le navigateur affiche une erreur de certificat : certificat auto-signé attendu, envisager Let’s Encrypt ou installer le certificat CA sur les postes.
  • Apache ne démarre pas : vérifiez la syntaxe de configuration (apachectl configtest) et les chemins des fichiers.
  • Cron n’exécute pas awstats.pl : vérifiez les permissions et les chemins absolus dans la crontab.

Boîte de faits clés

  • Port HTTPS par défaut : 443.
  • Exemple de cron : 45 9 * → exécute la tâche chaque jour à 09:45.
  • Emplacements fréquents : /etc/pki/tls/certs/, /etc/pki/tls/private/, /var/www/awstats/.

Glossaire (1 ligne chacun)

  • SSL/TLS — protocole de chiffrement pour sécuriser les connexions HTTP.
  • CSR — requête de signature de certificat envoyée à une autorité de certification.
  • cron — planificateur de tâches périodiques sur Unix.

Exemples de tests d’acceptation

  • Accès HTTPS : charger https://votre-domaine/awstats et vérifier l’affichage sans erreur serveur.
  • Mise à jour cron : forcer l’exécution et vérifier que les dernières données apparaissent dans AWStats.
  • Permissions : les fichiers clés ne sont pas lisibles par les comptes non privilégiés.

Résumé

Ce guide couvre la mise en place d’AWStats sur HTTPS avec un certificat auto-signé, la configuration d’Apache, l’automatisation via cron et des pistes pour améliorer la performance (GeoIP). Pour la production, privilégiez un certificat reconnu et protégez l’accès à AWStats. Consultez la documentation AWStats et GeoIP pour adapter ces étapes à votre environnement.

Notes

  • Pour un déploiement en production, Let’s Encrypt reste la solution recommandée pour obtenir un certificat gratuit et automatiser son renouvellement.
  • Explorez les options AWStats (ExtraSections, performance) pour adapter les rapports à vos besoins.
Auteur
Édition

Matériaux similaires

Surveillance Apache Tomcat — compteurs et règles
Surveillance

Surveillance Apache Tomcat — compteurs et règles

Protégez-vous du clickjacking
Sécurité Web

Protégez-vous du clickjacking

Fonds différents par écran sur Android
Mobile

Fonds différents par écran sur Android

Supprimer vos données des courtiers en ligne
Vie privée

Supprimer vos données des courtiers en ligne

Fonds d’écran différents par écran Android
Personnalisation Android

Fonds d’écran différents par écran Android

Surveillance et gestion d'Apache Tomcat
Surveillance

Surveillance et gestion d'Apache Tomcat