前言
在当今互联网环境中,网站安全性至关重要。为WordPress网站配置SSL证书不仅能保护用户数据安全,还能提升搜索引擎排名。本文将详细介绍如何在Nginx服务器上为WordPress网站配置SSL证书。
准备工作
- 已安装WordPress的Nginx服务器环境
- 已注册的域名并指向服务器IP
- 获取SSL证书(可从Let’s Encrypt、阿里云、腾讯云等获取)
证书获取方式
使用Let’s Encrypt免费证书
- 安装Certbot工具:
sudo apt-get install certbot python3-certbot-nginx
- 获取证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
- 证书会自动配置到Nginx,并设置自动续期
商业SSL证书安装
如果您购买了商业SSL证书,通常会获得以下文件:
- 域名证书(.crt或.pem文件)
- 证书链文件(CA证书)
- 私钥文件(.key文件)
将这些文件上传到服务器安全目录,如/etc/nginx/ssl/
Nginx配置SSL证书
基础配置
编辑Nginx配置文件(通常在/etc/nginx/sites-available/yourdomain.conf
):
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.key;
ssl_trusted_certificate /etc/nginx/ssl/ca.crt;
# SSL协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...";
# 其他WordPress配置
root /var/www/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
}
HTTP重定向到HTTPS
添加以下server块强制所有HTTP请求跳转到HTTPS:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$server_name$request_uri;
}
WordPress配置调整
- 登录WordPress后台
- 进入”设置”→”常规”
- 将”WordPress地址(URL)“和”网站地址(URL)“中的http改为https
- 保存更改
解决混合内容问题
安装”Really Simple SSL”插件,它可以自动处理大部分混合内容问题。
证书自动续期(Let’s Encrypt)
测试续期命令:
sudo certbot renew --dry-run
设置自动续期(通常Certbot已自动配置):
sudo certbot renew --quiet --no-self-upgrade --post-hook "systemctl reload nginx"
安全加固建议
- 启用HSTS(在Nginx配置中添加):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
- 使用更安全的加密套件
- 定期更新服务器和WordPress核心
- 监控证书到期时间
常见问题解决
- 证书不信任:确保安装了完整的证书链
- 混合内容警告:使用插件或手动替换资源URL为https
- 重定向循环:检查WordPress设置和Nginx配置
- 性能问题:启用OCSP Stapling提升SSL握手速度
结语
通过以上步骤,您的WordPress网站现在应该已经安全地运行在HTTPS下了。定期检查证书状态和服务器安全配置,可以确保网站长期稳定安全地运行。