SSL & HTTPS pour WordPress
Configuration HTTPS complète et résolution des problèmes de mixed content.
Forcer HTTPS dans wp-config.php
define( 'FORCE_SSL_ADMIN', true );
define( 'WP_HOME', 'https://votre-site.com' );
define( 'WP_SITEURL', 'https://votre-site.com' ); Redirection .htaccess (Apache)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] Configuration Nginx
server {
listen 80;
server_name votre-site.com www.votre-site.com;
return 301 https://votre-site.com$request_uri;
}
server {
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/votre-site.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/votre-site.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
} Corriger le mixed content
# Via WP-CLI — Search & Replace en base de données
wp search-replace 'http://votre-site.com' 'https://votre-site.com' --all-tables Let's Encrypt — Certificat gratuit, renouvellement automatique via Certbot :
certbot --nginx -d votre-site.comHSTS (sécurité avancée)
Ajoutez ce header pour forcer HTTPS même si le visiteur tape http:// :
# Dans la config Nginx
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Dans .htaccess (Apache)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"