在 Debian 上安装与配置 SSL 证书的实用步骤
一 准备工作
sudo ufw allow 'Apache Full'(或 Nginx 对应规则)。sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048。二 使用 Let’s Encrypt 与 Certbot 自动部署(推荐)
sudo apt update && sudo apt install certbot python3-certbot-apachesudo apt update && sudo apt install certbot python3-certbot-nginxsudo certbot --apache -d example.com -d www.example.comsudo certbot --nginx -d example.com -d www.example.comsudo systemctl status certbot.timersudo certbot renew --dry-run三 手动部署已有或自签名证书
sudo cp example.com.crt /etc/ssl/certs/、sudo cp example.com.key /etc/ssl/private/(如有多级中间证书,一并放置)。server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
ssl_trusted_certificate /etc/ssl/certs/chain.pem; # 如有中间证书
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
root /var/www/html;
index index.html;
}
sudo nginx -t && sudo systemctl reload nginx<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/example.com.crt
SSLCertificateKeyFile /etc/ssl/private/example.com.key
SSLCertificateChainFile /etc/ssl/certs/chain.pem # 可选
# 其他常规配置…
</VirtualHost>
sudo a2ensite your-site.conf && sudo systemctl reload apache2sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt四 验证与常见问题
certbot.timer 处于 active 状态。sudo ufw allow 'Apache Full'(或 Nginx 对应项)。sudo chmod 600 /etc/ssl/private/*.key;证书与私钥路径需与 Web 配置一致。sudo nginx -t;Apache:sudo apache2ctl configtest,无误后再重载服务。