通过Certbot自动申请更新HTTPS网站的SSL证书
现在很多云服务运营商免费的HTTPS证书有效期只有3个月,对于个人网站来说,这就很麻烦,现在可以用 Certbot + Crontab 自动申请并定期更新 HTTPS 网站的 SSL 证书,来解决我们这个痛点。
需要云服务器可以看这里:云服务器优惠合集。
1. 安装 Certbot
不同系统安装方式略有不同,这里给你 CentOS / RHEL 和 Debian / Ubuntu 的常用方法。
CentOS / RHEL 7/8/9
# 安装 EPEL
sudo yum install epel-release -y
# 安装 Certbot 和 Nginx 插件(如果用 Apache 就换成 python3-certbot-apache)
sudo yum install certbot python3-certbot-nginx -y
Debian / Ubuntu
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
2. 申请 SSL 证书
如果你用 Nginx:
sudo certbot --nginx -d example.com -d www.example.com
-d参数后面写你的域名(可以多个)- Certbot 会自动修改 Nginx 配置并申请证书
- 申请过程中会让你选择是否重定向 HTTP → HTTPS
注意:这里需要你的nginx的conf文件里面的sercer_name指定对应的域名,如果你配置的是下划线 "_",会导致该命令运行失败,报下面的错误。
Could not automatically find a matching server block for zhangfeidezhu.com. Set the `server_name` directive to use the Nginx installer.
如果你用 Apache:
sudo certbot --apache -d example.com -d www.example.com
3. 测试证书是否生效
申请完成后,可以在浏览器访问你的域名,查看是否已经是有效的 Let's Encrypt 证书。
4. 自动更新证书
Let's Encrypt 证书有效期是 90 天,所以要自动续签。
Certbot 自带定时任务(通常是 /etc/cron.d/certbot 或 systemd 定时器),也可以手动添加 crontab:
sudo crontab -e
加入:
0 3 1 */3 * certbot renew --quiet --post-hook "nginx -s reload"
解释:
0 3 1 */3 *→ 每隔 3 个月的1号3点执行一次--quiet→ 静默模式--post-hook "nginx -s reload"→ 续签后自动重载 Nginx
5. 检查自动续签是否正常
手动测试续签:
sudo certbot renew --dry-run
如果提示 Congratulations, all renewals succeeded,说明没问题。
这样配置后,你的网站 HTTPS 证书会在到期前自动续签,Nginx 会自动加载新证书,几乎可以做到“一劳永逸”。
通过Certbot自动申请更新HTTPS网站的SSL证书的更多相关文章
- 【http转https】其之二:申请Let's Encrypt颁发SSL证书
文:铁乐猫 2017年1月12日 申请Let's Encrypt颁发SSL证书 由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务, ISRG ...
- http跳转https方法:百度云如何让http自动跳转到https【免费SSL证书使用FAQ】
之前的一篇文章已经给大家提供了免费SSL证书的申请方法,这一篇文章是告诉大家在使用免费的SSL证书时可能会遇到的问题[怎么让http自动跳转到https以及http与https同时使用]的解决方法. ...
- 申请安装阿里云免费SSL证书
微信小程序已经全面要求使用HTTPS服务了,还有苹果商店也是,所以,实现网站HTTPS已经很有必要.要实现HTTPS就需要一个SSL证书,证书大部分都很贵,不过也有一些免费的证书服务供个人开发者使用. ...
- 网站安装SSL证书成为影响SEO排名的重要因素之一
百度谷歌先后发声明倡导站长们使用https链接,同样的网站,https站点要比http站点拥有更好的排名权重.https已经是网站SEO必须要考虑的环节之一了,而https的必要条件就是安装SSL证书 ...
- 如何给网站添加SSL证书(免费)
上篇讲了如何将网站部署到服务器上,这篇就讲如何给网站添加SSL证书. 1.先到腾讯云ssl证书认证那里申请一个证书 2.DNS认证 3.下载解压nginx里面的文件 4. 在服务器上/www目录下创建 ...
- Requests对HTTPS请求验证SSL证书
SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议是由Netscape Communication公司设计开发.该安全协议主 ...
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总 一份常见的 HTTPS 站点使用的证书和数据加密技术列表,便于需要时比较参考,将持续加入新的 HTTP 站点,这里给出的信 ...
- requests发送HTTPS请求(处理SSL证书验证)
1.SSL是什么,为什么发送HTTPS请求时需要证书验证? 1.1 SSL:安全套接字层.是为了解决HTTP协议是明文,避免传输的数据被窃取,篡改,劫持等. 1.2 TSL:Transport Lay ...
- Nginx配置SSL证书部署HTTPS网站(颁发证书)
一.Http与Https的区别HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...
- selenium 对https网站(加密证书)进行自动化测试
由于公司需要,被测网站有证书加密,由于在selenium启动firefox的时候,它会重新建一个profile作为启动的profile,所以无论你怎么把站点设为可信任站点,在selenium启动的fi ...
随机推荐
- 阅读类元服务开发笔记---week1
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- C++函数重载的一点问题
问题 #include <iostream> #include <vector> enum A { Value = 1 }; void a(std::vector<int ...
- java 钉钉群机器人发消息通知工具类
测测类 /** * 测试钉钉群通知 * * @return */ @GetMapping("/testDingTalk") public Result testDingTalk() ...
- 洛谷 P3945 三体问题
洛谷 P3945 三体问题 在物竞dalao的帮助下(简化下?)终于A了此题,于是在他的提议下来喷出题人. 接下来看题. 题意分析 模拟三维空间中\(n\)个星体的运动,求\(Ts\)后\(n\)个星 ...
- 深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
复杂事件处理(CEP)是一种对事件流进行分析的技术,它能够识别出数据流中的事件序列是否符合特定的模式,并允许用户对这些模式进行处理.Flink CEP 是 CEP 在 Apache Flink 中的具 ...
- HyperWorks变形域和控制柄方法
变形域和控制柄方法 使用变形域和控制柄方法进行网格变形时,网格模型被分割成若干个变形子域,位于变形域上的控制柄常常用来控制变形域形状的变化.当控制柄移动时,变形域的形状随之变化,进而影响变形域内部节点 ...
- 【公开课】芯片ATE测试—93K机台与Smartest软件介绍
当前,随着中国集成电路产业的高速发展,芯片测试作为确保产品良率与可靠性的关键环节,其技术人才缺口日益凸显.尤其在测试设备操作层面,行业普遍面临两大痛点: 一方面,高端ATE测试平台(如93K系统)操作 ...
- .NET Core on K8S学习与实践系列文章 (2020版)
一.关于这个系列 自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构与容器化等等.我们的实践是渐进的,当我们的微服务数量到了一定值时,发 ...
- 11-2 MySQL 数据库对象编写建议(参考)
11-2 MySQL 数据库对象编写建议(参考) @ 目录 11-2 MySQL 数据库对象编写建议(参考) 1. 数据库对象编写建议/推荐 1.1 关于库 1.2 关于表.列 1.3 索引 1.4 ...
- C# 对字符串进行UrlEncode/UrlDecode
https://www.cnblogs.com/li150dan/p/13492280.html //对字符进行UrlEncode编码 string text= System.Web.HttpUtil ...