Qu’est-ce qu’un certificat SSL/TLS ?
Un certificat SSL/TLS est un fichier numerique qui chiffre 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 donnees transitent en clair — mots de passe, informations de paiement, donnees personnelles peuvent etre 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 |
|---|---|
| Securite | Chiffre toutes les donnees echangees — essentiel pour les sites e-commerce (Wave, Orange Money) et les formulaires |
| SEO Google | Google penalise les sites sans HTTPS dans les resultats de recherche depuis 2014 |
| Confiance visiteur | Les navigateurs affichent « Non securise » a cote des sites HTTP — vos visiteurs fuient |
| Obligations legales | Le RGPD et la loi senegalaise sur les donnees personnelles exigent la protection des donnees 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) | Verifie que vous controlez le domaine | Minutes | Gratuit (Let’s Encrypt) a ~30 000 FCFA/an | Blogs, sites vitrine, petites boutiques |
| OV (Organization Validation) | Verifie le domaine + l’identite de l’entreprise | 1-3 jours | ~50 000 – 150 000 FCFA/an | Sites d’entreprises, PME |
| EV (Extended Validation) | Verification 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 differents | Selon le type | Variable | Plusieurs sites pour la meme entreprise |
Recommandation : Pour 95% des sites au Senegal, un certificat DV gratuit de Let’s Encrypt suffit. Il offre le meme niveau de chiffrement qu’un certificat payant.
Let’s Encrypt : le certificat SSL gratuit
Let’s Encrypt est une autorite de certification gratuite et automatisee. C’est le choix de reference pour la majorite 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 :
- Verifie 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 apres 90 jours, mais Certbot configure un renouvellement automatique :
# Verifier 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 hebergement mutualise (cPanel)
Si votre site est heberge chez un hebergeur avec cPanel (commun au Senegal) :
- Connectez-vous a votre cPanel
- Cherchez « SSL/TLS » ou « Let’s Encrypt » dans la section Securite
- Cliquez sur « Installer » a cote de votre domaine
- Le certificat s’installe automatiquement
Si Let’s Encrypt n’est pas disponible dans cPanel, contactez votre hebergeur — la plupart l’offrent gratuitement (OVH, Hostinger, Namecheap).
Installation sur WordPress
Une fois le certificat SSL installe sur le serveur, configurez WordPress :
- WordPress → Reglages → General : changez les deux URL de http:// a https://
- Installez le plugin « Really Simple SSL » pour gerer les redirections et le contenu mixte automatiquement
- Verifiez que toutes les pages chargent en HTTPS (pas d’avertissement dans la barre d’adresse)
Le probleme 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
- Theme ou plugins chargeant des ressources en HTTP
- Liens vers des fichiers externes non HTTPS
Solution : Really Simple SSL corrige automatiquement la plupart des problemes. Pour les cas restants, cherchez « http:// » dans votre base de donnees avec le plugin Better Search Replace et remplacez par « https:// ».
Verifier votre certificat SSL
Dans le navigateur :
- Cliquez sur le cadenas dans la barre d’adresse → « Le certificat est valide »
- Verifiez : l’emetteur (Let’s Encrypt, DigiCert…), la date d’expiration, le domaine couvert
Outils de verification en ligne :
| Outil | URL | Ce qu’il verifie |
|---|---|---|
| SSL Labs | ssllabs.com/ssltest | Note de securite (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 etre renforcee.
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, meme si l’utilisateur tape http://.
Problemes courants et solutions
| Probleme | Cause | Solution |
|---|---|---|
| Certificat expire | Renouvellement automatique en panne | sudo certbot renew –force-renewal puis verifier le timer |
| « Votre connexion n’est pas privee » | Certificat expire, domaine non couvert, ou probleme de chaine | Verifier 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 | Verifier la configuration serveur et les reglages WordPress |
Checklist SSL/TLS
- ☐ Certificat SSL installe (Let’s Encrypt ou autre)
- ☐ Domaine principal ET www couverts
- ☐ Redirection HTTP → HTTPS configuree
- ☐ Renouvellement automatique verifie (certbot renew –dry-run)
- ☐ Pas de contenu mixte (verifier avec whynopadlock.com)
- ☐ Note A ou A+ sur SSL Labs
- ☐ TLS 1.2+ uniquement (pas de TLS 1.0/1.1)
- ☐ HSTS active
- ☐ WordPress URLs en https://