Debian域名SSL证书安装指南(以Nginx为例)
本文介绍在Debian系统上为域名安装SSL证书的详细步骤,涵盖自动(Certbot)与手动两种方式,重点讲解Nginx配置及自动续期设置。
sudo apt update && sudo apt upgrade -y,确保系统组件为最新版本。sudo apt install nginx,启动服务并设置开机自启:sudo systemctl start nginx && sudo systemctl enable nginx。Certbot是Let’s Encrypt的官方客户端,可自动化获取、安装及续期SSL证书(有效期90天,自动续期无需手动干预)。
运行以下命令安装Certbot及Nginx集成插件:
sudo apt install certbot python3-certbot-nginx。
执行Certbot命令,指定域名(替换yourdomain.com为实际域名,www.yourdomain.com为可选别名):
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com。
Let’s Encrypt证书有效期为90天,Certbot会自动添加cron任务续期。手动测试续期流程:
sudo certbot renew --dry-run
若输出显示“Congratulations, all renewals succeeded”,则续期功能正常。
若需手动管理证书(如使用商业证书或自定义路径),按以下步骤操作:
从证书颁发机构(CA)获取以下文件:
.crt,如yourdomain.com.crt);.key,如yourdomain.com.key);.pem,如chain.pem,用于完整证书链)。将证书文件上传至安全目录(推荐路径):
/etc/ssl/certs/yourdomain.com.crt;/etc/ssl/private/yourdomain.com.key;/etc/ssl/certs/chain.pem。编辑Nginx的站点配置文件(如/etc/nginx/sites-available/yourdomain.com),添加SSL配置块:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri; # 强制HTTP跳转HTTPS
}
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
# SSL证书路径
ssl_certificate /etc/ssl/certs/yourdomain.com.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.com.key;
# 可选:优化SSL配置
ssl_protocols TLSv1.2 TLSv1.3; # 仅使用TLS 1.2及以上版本
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; # 安全加密套件
ssl_prefer_server_ciphers on; # 优先使用服务器端加密套件
# 网站根目录及默认页面
root /var/www/yourdomain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404; # 处理静态文件请求
}
}
/etc/nginx/sites-enabled/目录,需创建符号链接启用配置:sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/。运行sudo nginx -t检查配置语法是否正确(无错误输出则继续);
重启Nginx应用更改:sudo systemctl restart nginx。
https://yourdomain.com,确认地址栏显示安全锁图标(表示HTTPS连接成功)。https://www.ssllabs.com/ssltest/)检测证书有效性、加密协议及配置安全性。https://协议加载;sudo ufw allow https)。