首页主机资讯Nginx SSL证书Ubuntu怎么申请

Nginx SSL证书Ubuntu怎么申请

时间2025-11-03 09:23:04发布访客分类主机资讯浏览598
导读:一、前置准备 在申请Nginx SSL证书前,需完成以下准备工作: 域名解析:确保你的域名已正确解析到服务器公网IP(可通过ping yourdomain.com验证); Nginx安装:服务器已安装并正常运行Nginx(可通过syste...

一、前置准备

在申请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
Debian Golang编译后如何打包 如何在Debian上编译Golang特定模块

游客 回复需填写必要信息