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)
- Installer mod_ssl/OpenSSL et préparer le répertoire des certificats.
- Générer la clé, CSR, et signer (ou obtenir un certificat CA).
- Déployer les fichiers dans /etc/pki/tls/* et fixer les permissions.
- Configurer Apache, recharger le service, vérifier port 443.
- 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.
Matériaux similaires

Surveillance Apache Tomcat — compteurs et règles

Protégez-vous du clickjacking

Fonds différents par écran sur Android

Supprimer vos données des courtiers en ligne

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