Let‘s Encrypt证书自动更新报错

本文讲述了在CentOS 7.7环境下遇到的HTTPS证书自动续期失败问题,通过从GitHub下载Certbot手动安装并配置,解决了wget下载失败的404错误。详细步骤包括解压、替换、赋权及脚本调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行环境:CentOS7.7

HTTPS证书自动续期定时任务报错,查看发现certbot-auto无法下载

wget -P /opt/letsencrypt/ https://dl.eff.org/certbot-auto

错误信息如下:


--  https://dl.eff.org/certbot-auto
Resolving dl.eff.org (dl.eff.org)... 151.101.72.201, 2a04:4e42:11::201
Connecting to dl.eff.org (dl.eff.org)|151.101.72.201|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
ERROR 404: Not Found.
 


好吧,到github下载certbot最新稳定版本

GitHub - certbot/certbot: Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.https://github.com/certbot/certbot

下载后解压,将letsencrypt-auto-source目录下的letsencrypt-auto,复制到原来目录,如下:

# 解压到指定文件夹
tar -zxvf /opt/certbot-1.19.0.tar.gz -C /opt/certbot-1.19.0

# 备份
mv /opt/letsencrypt/certbot-auto  /opt/letsencrypt/certbot-auto.bak

# 复制到目标文件夹
cp /opt/certbot-1.19.0/letsencrypt-auto-source/letsencrypt-auto /opt/letsencrypt/certbot-auto

# 授予certbot-auto执行权
chmod u+x /opt/letsencrypt/certbot-auto

# 接下来,手工执行一次定时任务脚本……

剩下的按原来的脚本升级即可,祝你好运^-^

<think>嗯,用户希望将提供的Nginx配置和Certbot命令转换为适用于CentOS系统的详细配置,并且需要知道这些配置应该写在哪些文件中。首先,我需要确认用户对CentOS的熟悉程度,可能他们有一定的Linux基础,但需要具体的步骤指导。 首先,Certbot命令部分,用户给出的命令是使用standalone模式获取证书,这在CentOS上需要确保80和443端口未被占用,或者停止正在运行的Web服务器。此外,CentOS通常使用yum包管理器,需要确认是否已安装EPEL仓库,因为Certbot可能来自那里。需要提醒用户安装必要的依赖,比如epel-release和mod_ssl,可能还需要配置防火墙开放端口。 接下来是Nginx的配置部分。用户提供的示例是一个基本的HTTPS代理设置,但在CentOS中,Nginx的配置文件通常存放在/etc/nginx/conf.d/目录下,每个站点一个.conf文件。需要指导用户创建或修改该目录下的配置文件,比如your_domain.conf,并确保语法正确。同时,可能需要调整主配置文件nginx.conf,但通常conf.d的方式更标准。 另外,SELinux和防火墙设置是CentOS用户常遇到的问题。需要提醒用户如果遇到权限问题,如何调整SELinux策略或使用相应的布尔值,比如httpd_can_network_connect。防火墙方面,CentOS默认使用firewalld,需要开放HTTP和HTTPS端口,并重新加载配置。 证书续期也是一个重要点,Certbot默认会自动续期,但需要确认cron任务或systemd定时器是否已正确设置。可能需要指导用户测试续期命令,并确保Nginx在续期后重新加载配置。 用户可能的深层需求是确保整个流程顺利,从安装到配置再到维护,特别是在CentOS环境下可能遇到的特定问题,比如软件包来源、服务管理命令(systemctl)、配置文件的正确位置等。需要分步骤详细说明,避免遗漏关键步骤,比如安装依赖、处理SELinux、配置防火墙等,这些对于不熟悉CentOS的用户来说容易出错。 最后,要确保指导用户验证配置是否正确,包括检查Nginx配置语法,重启服务,以及使用curl或浏览器测试HTTPS连接。可能还需要提醒用户替换示例中的域名和端口,根据实际应用进行调整。整个思考过程需要逻辑清晰,步骤详尽,同时预见到用户可能遇到的问题并提前给出解决方案。</think>以下是针对CentOS系统的详细配置指南,包含操作步骤、文件路径及注意事项: --- ### $\textcolor{blue}{一、Certbot证书申请流程}$ #### 1. **前置条件** ```bash # 安装必要组件(需root权限) sudo yum install -y epel-release sudo yum install -y certbot python3-certbot-nginx mod_ssl # 关闭占用80/443端口的服务(如Apache) sudo systemctl stop httpd ``` #### 2. **申请证书** ```bash # 替换your_domain.com为真实域名(需DNS解析已生效) sudo certbot certonly --standalone -d your_domain.com ``` $\textcolor{red}{注意}$:执行前确保: - 防火墙开放80/443端口 - 域名解析指向服务器IP - 无其他程序占用80/443端口 --- ### $\textcolor{blue}{二、Nginx配置文件部署}$ #### 1. **主配置文件路径** ```bash /etc/nginx/nginx.conf # 全局配置 /etc/nginx/conf.d/ # 推荐存放站点配置的目录 ``` #### 2. **创建站点配置文件** ```bash sudo vi /etc/nginx/conf.d/your_domain.conf ``` 粘贴以下内容(需修改两处参数): ```nginx server { listen 443 ssl; server_name your_domain.com; # ← 修改为实际域名 ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; # ← 修改域名 ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem; # ← 修改域名 location / { proxy_pass http://localhost:8080; # ← 修改为实际后端端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # HTTP强制跳转HTTPS(可选) server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } ``` #### 3. **验证与重载配置** ```bash # 检查语法 sudo nginx -t # 重启服务 sudo systemctl restart nginx # 设置开机启动 sudo systemctl enable nginx ``` --- ### $\textcolor{blue}{三、关键安全配置}$ #### 1. **防火墙设置** ```bash # 开放端口 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload ``` #### 2. **SELinux策略调整** ```bash # 允许Nginx连接网络端口 sudo setsebool -P httpd_can_network_connect 1 ``` --- ### $\textcolor{blue}{四、证书自动续期}$ #### 1. **测试续期流程** ```bash sudo certbot renew --dry-run ``` #### 2. **添加定时任务** ```bash # 编辑crontab sudo crontab -e ``` 添加以下内容: ```bash 0 0 */3 * * /usr/bin/certbot renew --quiet && systemctl reload nginx ``` $\textcolor{green}{说明}$:每3天自动续期并重载Nginx配置 --- ### $\textcolor{red}{常见问题排查}$ 1. **证书申请失败** - 检查域名解析是否生效:`nslookup your_domain.com` - 确认端口未被占用:`sudo netstat -tulnp | grep ':80\|:443'` 2. **Nginx启动报错** - 检查路径权限:`sudo chmod 755 /etc/letsencrypt/{live,archive}` - 查看详细日志:`journalctl -u nginx.service -b` 3. **代理连接超时** - 验证后端服务状态:`curl http://localhost:8080` - 检查SELinux策略:`getsebool httpd_can_network_connect` --- ### $\textcolor{green}{最终验证}$ ```bash curl -I https://your_domain.com ``` 应返回: $$ \text{HTTP/2 200} \quad \text{或} \quad \text{代理后端服务的响应头} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂龙骄子

独码乐,不如众码乐,乐享其中

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值