Qu’est-ce qu’un certificat SSL/TLS ?
Un certificat SSL/TLS est un fichier numérique qui chiffré les communications entre le navigateur de vos visiteurs et votre serveur web. C’est ce qui transforme http:// en https:// et affiche le cadenas dans la barre d’adresse. Sans certificat SSL, les données transitent en clair — mots de passe, informations de paiement, données personnelles peuvent être interceptees.
SSL vs TLS : SSL (Secure Sockets Layer) est l’ancien protocole, remplace par TLS (Transport Layer Security). Tout le monde dit « SSL » par habitude, mais les certificats modernes utilisent TLS 1.2 ou 1.3.
Pourquoi le SSL est obligatoire en 2026
| Raison | Detail |
|---|---|
| Sécurité | Chiffre toutes les données echangees — essentiel pour les sites e-commerce (Wave, Orange Money) et les formulaires |
| SEO Google | Google penalise les sites sans HTTPS dans les résultats de recherche depuis 2014 |
| Confiance visiteur | Les navigateurs affichent « Non sécurisé » a cote des sites HTTP — vos visiteurs fuient |
| Obligations legales | Le RGPD et la loi sénégalaise sur les données personnelles exigent la protection des données en transit |
| Paiements en ligne | Les passerelles de paiement (PayDunya, CinetPay, Stripe) exigent HTTPS |
Les types de certificats SSL
| Type | Validation | Temps d’obtention | Prix | Ideal pour |
|---|---|---|---|---|
| DV (Domain Validation) | Vérifié que vous controlez le domaine | Minutes | Gratuit (Let’s Encrypt) a ~30 000 FCFA/an | Blogs, sites vitrine, petites boutiques |
| OV (Organization Validation) | Vérifié le domaine + l’identité de l’entreprise | 1-3 jours | ~50 000 – 150 000 FCFA/an | Sites d’entreprises, PME |
| EV (Extended Validation) | Vérification approfondie (documents juridiques) | 1-2 semaines | ~150 000 – 500 000 FCFA/an | Banques, e-commerce haut de gamme |
| Wildcard | Couvre le domaine + tous les sous-domaines (*.domaine.com) | Selon le type (DV/OV) | Variable | Sites avec plusieurs sous-domaines |
| Multi-domaine (SAN) | Couvre plusieurs domaines différents | Selon le type | Variable | Plusieurs sites pour la même entreprise |
Recommandation : Pour 95% des sites au Sénégal, un certificat DV gratuit de Let’s Encrypt suffit. Il offre le même niveau de chiffrement qu’un certificat payant.
Let’s Encrypt : le certificat SSL gratuit
Let’s Encrypt est une autorité de certification gratuite et automatisee. C’est le choix de référence pour la majorité des sites web.
Installation avec Certbot sur Ubuntu/Debian + Nginx :
# Installer Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
# Obtenir et installer le certificat
sudo certbot --nginx -d votresite.com -d www.votresite.com
Certbot fait tout automatiquement :
- Vérifié que vous controlez le domaine
- Genere le certificat
- Configure Nginx pour utiliser HTTPS
- Ajoute la redirection HTTP → HTTPS
Pour Apache :
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d votresite.com -d www.votresite.com
Renouvellement automatique :
Les certificats Let’s Encrypt expirent après 90 jours, mais Certbot configuré un renouvellement automatique :
# Vérifier que le renouvellement automatique fonctionne
sudo certbot renew --dry-run
# Le renouvellement est programme via un timer systemd ou un cron
sudo systemctl status certbot.timer
Installation sur un hébergement mutualise (cPanel)
Si votre site est heberge chez un hébergeur avec cPanel (commun au Sénégal) :
- Connectez-vous a votre cPanel
- Cherchez « SSL/TLS » ou « Let’s Encrypt » dans la section Sécurité
- Cliquez sur « Installer » a cote de votre domaine
- Le certificat s’installé automatiquement
Si Let’s Encrypt n’est pas disponible dans cPanel, contactez votre hébergeur — la plupart l’offrent gratuitement (OVH, Hostinger, Namecheap).
Installation sur WordPress
Une fois le certificat SSL installé sur le serveur, configurez WordPress :
- WordPress → Reglages → Général : changez les deux URL de http:// a https://
- Installez le plugin « Really Simple SSL » pour gérer les redirections et le contenu mixte automatiquement
- Vérifiez que toutes les pages chargent en HTTPS (pas d’avertissement dans la barre d’adresse)
Le problème du contenu mixte :
Si votre page est en HTTPS mais charge des images ou scripts en HTTP, le navigateur affiche un avertissement. Causes courantes :
- Images inserees avec des URL http:// dans les articles
- Thème ou plugins chargeant des ressources en HTTP
- Liens vers des fichiers externes non HTTPS
Solution : Really Simple SSL corrige automatiquement la plupart des problèmes. Pour les cas restants, cherchez « http:// » dans votre base de données avec le plugin Better Search Replace et remplacez par « https:// ».
Vérifier votre certificat SSL
Dans le navigateur :
- Cliquez sur le cadenas dans la barre d’adresse → « Le certificat est valide »
- Vérifiez : l’emetteur (Let’s Encrypt, DigiCert…), la date d’expiration, le domaine couvert
Outils de vérification en ligne :
| Outil | URL | Ce qu’il vérifié |
|---|---|---|
| SSL Labs | ssllabs.com/ssltest | Note de sécurité (A+ a F), configuration TLS, vulnerabilites |
| SSL Checker | sslshopper.com/ssl-checker | Validite du certificat, chaine de certification |
| Why No Padlock | whynopadlock.com | Detecte le contenu mixte sur vos pages |
Objectif : Obtenir une note A ou A+ sur SSL Labs. Si vous avez un B ou moins, votre configuration TLS doit être renforcée.
Configuration TLS optimale (Nginx)
Pour obtenir un A+ sur SSL Labs, ajoutez dans votre configuration Nginx :
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
Le header HSTS (Strict-Transport-Security) force les navigateurs a toujours utiliser HTTPS, même si l’utilisateur tape http://.
Problèmes courants et solutions
| Problème | Cause | Solution |
|---|---|---|
| Certificat expire | Renouvellement automatique en panne | sudo certbot renew –force-renewal puis vérifier le timer |
| « Votre connexion n’est pas privee » | Certificat expire, domaine non couvert, ou problème de chaine | Vérifier avec SSL Labs, reinstaller le certificat |
| Contenu mixte (cadenas avec triangle) | Ressources HTTP sur une page HTTPS | Plugin Really Simple SSL ou rechercher/remplacer http → https |
| Certificat ne couvre pas www | Le certificat a ete emis pour domaine.com mais pas www.domaine.com | Reeemettre avec les deux domaines : -d domaine.com -d www.domaine.com |
| ERR_TOO_MANY_REDIRECTS | Boucle de redirection HTTP ↔ HTTPS | Vérifier la configuration serveur et les réglages WordPress |
Checklist SSL/TLS
- ☐ Certificat SSL installé (Let’s Encrypt ou autre)
- ☐ Domaine principal ET www couverts
- ☐ Redirection HTTP → HTTPS configuree
- ☐ Renouvellement automatique vérifié (certbot renew –dry-run)
- ☐ Pas de contenu mixte (vérifier avec whynopadlock.com)
- ☐ Note A ou A+ sur SSL Labs
- ☐ TLS 1.2+ uniquement (pas de TLS 1.0/1.1)
- ☐ HSTS activé
- ☐ WordPress URLs en https://