Nginx SSL证书Ubuntu怎么申请
一、前置准备
在申请Nginx SSL证书前,需完成以下准备工作:
- 域名解析:确保你的域名已正确解析到服务器公网IP(可通过
ping yourdomain.com验证); - Nginx安装:服务器已安装并正常运行Nginx(可通过
systemctl status nginx检查状态); - 端口开放:确保服务器防火墙开放80端口(HTTP验证)和443端口(HTTPS服务)。
二、安装Certbot工具(Ubuntu专用)
Certbot是Let’s Encrypt官方推荐的自动化证书管理工具,需通过以下命令安装:
sudo apt update &
&
sudo apt install certbot python3-certbot-nginx -y
安装完成后,可通过certbot --version验证安装是否成功。
三、申请SSL证书(自动配置Nginx)
1. 单域名证书(推荐新手)
若仅需为单个域名(如example.com)申请证书,可直接运行以下命令:
sudo certbot --nginx -d example.com -d www.example.com
-d:指定域名(可同时添加多个,如主域名+www子域名);--nginx:让Certbot自动修改Nginx配置文件,无需手动编辑。
操作提示:
- Certbot会提示输入邮箱地址(用于接收证书过期提醒);
- 勾选“同意服务条款”;
- 选择“将HTTP请求重定向到HTTPS”(增强安全性,推荐勾选)。
2. 泛域名证书(支持*.example.com)
若需要为泛域名(如*.example.com)申请证书,需使用DNS验证(因HTTP验证无法覆盖泛域名):
sudo certbot certonly --manual --preferred-challenges dns-01 -d "*.example.com" -d "example.com"
--manual:手动验证模式;--preferred-challenges dns-01:指定DNS验证方式。
操作提示:
- 运行命令后,Certbot会提示你在DNS服务商处添加TXT记录(如
_acme-challenge.example.com); - 添加完成后,等待1-2分钟,Certbot会自动验证并生成证书。
四、验证证书安装
1. 查看证书信息
通过以下命令查看已安装证书的详细信息(包括有效期、路径等):
sudo certbot certificates
输出示例:
Found the following certs:
Certificate Name: example.com
Domains: example.com www.example.com
Expiry Date: 2025-12-31 23:59:59 (VALID: 90 days)
Certificate Path: /etc/letsencrypt/live/example.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/example.com/privkey.pem
确认Domains包含你的目标域名,Expiry Date在有效期内。
2. 测试Nginx配置
修改Nginx配置后,需通过以下命令测试语法是否正确:
sudo nginx -t
若输出nginx: configuration file /etc/nginx/nginx.conf syntax is ok,则表示配置正确。
3. 重启Nginx
测试通过后,重启Nginx使配置生效:
sudo systemctl restart nginx
五、配置自动续期(关键步骤)
Let’s Encrypt证书有效期为90天,需定期续期以避免服务中断。Certbot支持自动续期,无需手动操作:
1. 测试续期流程
运行以下命令模拟续期过程(无实际修改):
sudo certbot renew --dry-run
若输出Congratulations, all renewals succeeded,则表示自动续期配置正常。
2. 添加定时任务
编辑crontab文件,设置每天凌晨3点自动续期(续期成功后自动重启Nginx):
crontab -e
添加以下内容:
0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"
保存并退出,定时任务将自动生效。
六、常见问题解决
1. 证书申请失败
- 原因:域名未解析到服务器IP,或80端口被防火墙阻挡;
- 解决方法:检查域名解析是否正确(
nslookup yourdomain.com),开放80端口(sudo ufw allow 80)。
2. Nginx配置错误
- 原因:Certbot自动修改配置时出错,或手动配置有误;
- 解决方法:运行
sudo nginx -t定位错误,修改对应配置文件(如/etc/nginx/sites-available/yourdomain.conf)。
3. 续期失败
- 原因:服务器时间不准确(如未同步网络时间),或DNS记录未及时更新;
- 解决方法:同步服务器时间(
sudo timedatectl set-ntp true),检查DNS记录是否已生效。
通过以上步骤,即可在Ubuntu服务器上为Nginx成功申请并配置Let’s Encrypt免费SSL证书,实现网站的HTTPS加密访问。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Nginx SSL证书Ubuntu怎么申请
本文地址: https://pptw.com/jishu/740511.html
