如何在Debian上安装SSL证书
导读:在 Debian 上安装与配置 SSL 证书的实用步骤 一 准备工作 准备一个已解析到服务器公网 IP 的域名(如:example.com 与 www.example.com),并确保 Web 服务(Apache 或 Nginx)已安装...
在 Debian 上安装与配置 SSL 证书的实用步骤
一 准备工作
- 准备一个已解析到服务器公网 IP 的域名(如:example.com 与 www.example.com),并确保 Web 服务(Apache 或 Nginx)已安装且可访问。
- 开放防火墙端口:建议放行 HTTP(80) 与 HTTPS(443);如使用 UFW,可执行:
sudo ufw allow 'Apache Full'(或 Nginx 对应规则)。 - 为后续手动配置生成 DH 参数(可选但推荐):
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048。 - 确保域名 DNS 记录(A/AAAA)正确指向服务器,且 Web 根目录可被验证访问。
二 使用 Let’s Encrypt 与 Certbot 自动部署(推荐)
- 安装 Certbot 及对应插件
- Apache:
sudo apt update & & sudo apt install certbot python3-certbot-apache - Nginx:
sudo apt update & & sudo apt install certbot python3-certbot-nginx
- Apache:
- 获取并安装证书(自动修改 Web 配置)
- Apache:
sudo certbot --apache -d example.com -d www.example.com - Nginx:
sudo certbot --nginx -d example.com -d www.example.com
- Apache:
- 设置自动续期
- 查看定时器:
sudo systemctl status certbot.timer - 测试续期:
sudo certbot renew --dry-run
- 查看定时器:
- 验证
- 访问 https://example.com 应显示锁标识;证书默认路径为:/etc/letsencrypt/live/example.com/fullchain.pem(证书链)与 /etc/letsencrypt/live/example.com/privkey.pem(私钥)。
三 手动部署已有或自签名证书
- 放置证书文件(示例)
- 将证书与私钥复制到系统证书目录:
sudo cp example.com.crt /etc/ssl/certs/、sudo cp example.com.key /etc/ssl/private/(如有多级中间证书,一并放置)。
- 将证书与私钥复制到系统证书目录:
- Nginx 示例配置
- 将 HTTP 重定向到 HTTPS,并在 443 端口启用 SSL:
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
- 将 HTTP 重定向到 HTTPS,并在 443 端口启用 SSL:
- Apache 示例配置
- 启用 SSL 模块与站点后,在虚拟主机中启用:
< 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 apache2
- 启用 SSL 模块与站点后,在虚拟主机中启用:
- 自签名证书(仅测试/内网)
- 生成:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt - 按上述 Nginx/Apache 示例配置路径使用,浏览器会提示不受信任(正常)。
- 生成:
四 验证与常见问题
- 连接与强度验证
- 浏览器访问 https://example.com 检查锁标识;可用 SSL Labs Server Test 做强度与配置评估。
- 续期与定时器
- 证书有效期 90 天;建议保留 certbot renew --dry-run 定期自检;如使用定时器,确认
certbot.timer处于 active 状态。
- 证书有效期 90 天;建议保留 certbot renew --dry-run 定期自检;如使用定时器,确认
- 防火墙与端口
- 确保 80/443 已放行;UFW 可使用:
sudo ufw allow 'Apache Full'(或 Nginx 对应项)。
- 确保 80/443 已放行;UFW 可使用:
- 权限与路径
- 私钥权限应为 600:
sudo chmod 600 /etc/ssl/private/*.key;证书与私钥路径需与 Web 配置一致。
- 私钥权限应为 600:
- 配置语法
- Nginx:
sudo nginx -t;Apache:sudo apache2ctl configtest,无误后再重载服务。
- Nginx:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上安装SSL证书
本文地址: https://pptw.com/jishu/767464.html
