文章总结: 本文详细讲解利用Let’sEncrypt和Certbot为Nginx申请免费SSL证书实现HTTPS的操作流程。重点涵盖通配符证书的DNS验证步骤,包括TXT记录添加与生效验证,以及配置自动续期与Nginx重载的方法。文末提示通配符仅覆盖一级子域名的限制并提供解决思路,是一份实用的安全建设指南。 综合评分: 83 文章分类: 安全建设,WEB安全,安全工具
免费!如何为HTTPS服务申请SSL证书
原创
simple安全团队 simple安全团队
simple安全团队
2026年3月12日 12:00 湖北
概述
上期发布的《搭建Nginx反向代理服务器》反响还不错,在该文章中介绍的是HTTP,为了进一步提高安全,本期介绍如何申请免费的SSL证书,实现HTTPS。
Let’s Encrypt是一个免费的、自动化的、开放的证书颁发机构,也是本期的主角。
前置条件
1、指向服务器的有效域名,如simple.com
2、已安装Nginx的服务器
3、拥有该服务器的管理员权限(sudo)
4、该服务器开放80/443端口用于Let’s Encrypt验证
详细操作步骤
步骤一:安装Certbot工具
1、Certbot是Let’s Encrypt官方推荐的自动化申请工具,支持多种Linux发行版,这里使用Ubuntu版本。
# 更新软件包列表sudo apt update
# 安装Certbot及Nginx插件sudo apt install certbot python3-certbot-nginx -y
2、安装完成后,验证Certbot是否安装成功
certbot --version
步骤二:申请通配符证书(DNS验证方式)
通配符证书必须通过DNS验证方式申请,因为Let’s Encrypt需要验证您对域名的控制权。
1、执行以下命令开始申请通配符证书,执行完之后不要点击Enter键,要等确定TXT记录生效之后才能点击Enter键:
sudo certbot certonly --manual --preferred-challenges=dns \ --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos -m [email protected] \ -d '*.simple.com' -d simple.com
参数说明:
–manual:使用手动交互模式获取证书
–preferred-challenges=dns:指定DNS方式验证,使用DNS TXT记录进行验证
-d ‘*.simple.com’:通配符域名,覆盖所有一级子域名
-d simple.com:同时包含主域名(可选)
–agree-tos:同意Let’s Encrypt服务条款
-m [email protected]:您的邮箱地址,用于安全提醒和续期通知
2、登录域名控制台,按照控制台输出的信息,添加TXT记录
3、验证TXT记录是否生效
使用nslookupnslookup -type=txt _acme-challenge.simple.com
当命令返回的结果中包含您设置的TXT记录值时,说明DNS记录已生效。此时返回Certbot交互窗口,按回车键继续。
4、成功之后,会让你新建第二条TXT记录,域名与第一条一样,但是内容不同,注意要保存第一条TXT记录,不要删除了
5、登录域名控制台,按照控制台输出的信息,添加第二条TXT记录
6、验证TXT记录是否生效
使用nslookupnslookup -type=txt _acme-challenge.simple.com
当命令返回的结果中包含您设置的两条TXT记录值时,说明DNS记录已生效。此时返回Certbot交互窗口,按回车键继续。
7、DNS验证通过后,Certbot将自动生成证书文件。成功后会显示类似以下信息:
证书有效期为90天,到期前需要续期
步骤三:配置自动续期
1、Certbot默认会安装自动续期服务,您可以通过以下命令验证
# 检查定时器状态sudo systemctl status certbot.timer
# 查看系统级定时任务sudo systemctl list-timers | grep certbot
2、如果未配置自动续期,可以手动添加cron任务
sudo crontab -e# 添加以下行(每月1号凌晨0点执行续期)0 0 1 * * /usr/bin/certbot renew --quiet
3、续期后自动重载Nginx
为确保证书更新后Nginx能立即使用新证书,可以修改certbot服务配置
sudo vim /usr/lib/systemd/system/certbot.service
# 在ExecStart行添加--deploy-hook参数ExecStart=/usr/bin/certbot -q renew --deploy-hook "/usr/sbin/nginx -s reload"
注意事项
1、证书不覆盖多级子域名
通配符证书*.simple.com仅支持一级子域名(如oa.simple.com),无法覆盖dev.oa.simple.com这样的多级子域名
2、解决方案
为多级子域名单独申请证书或使用*.oa.simple.com
END
查看更多精彩内容,关注simple安全团队
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:simple安全团队 simple安全团队 simple安全团队《免费!如何为HTTPS服务申请SSL证书》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论