在Linux服务器上启用SSL加密保护Web接口的步骤如下,这里以Nginx和Let's Encrypt为例:
# Ubuntu/Debian
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx
# CentOS/RHEL
sudo yum install nginx certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
按提示操作: 1. 输入邮箱(用于安全通知) 2. 同意服务条款 3. 选择是否共享邮箱(可选) 4. 自动完成验证和证书安装
证书会自动配置,但建议检查/etc/nginx/sites-available/example.com
:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# 安全强化配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
# 其他配置...
}
在Nginx配置中添加:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
sudo nginx -t # 测试配置
sudo systemctl reload nginx
Let's Encrypt证书有效期为90天,设置自动续期:
sudo crontab -e
添加:
0 0 */7 * * certbot renew --quiet --post-hook "systemctl reload nginx"
使用工具检查:
1. 浏览器访问 https://example.com
2. 使用SSL Labs测试:
bash
curl https://www.ssllabs.com/ssltest/analyze.html?d=example.com
证书申请失败:
/var/log/letsencrypt/letsencrypt.log
混合内容警告:
OCSP装订问题:
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 1.1.1.1 valid=300s;
对于其他Web服务器(如Apache),步骤类似,只需替换为:
# Apache版Certbot
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com
建议定期检查SSL配置安全性,可使用Mozilla的SSL配置生成器获取最新推荐配置。