SSL 证书 | 免费获取与自动续期全攻略

2024-09-07 05:44

本文主要是介绍SSL 证书 | 免费获取与自动续期全攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

随着互联网的不断发展,网站的安全性越来越受到人们的关注。

SSL证书 作为一种保障网站安全的重要手段,已经成为了许多网站的必备配置。

以前阿里云每个账号能生成二十个期限 1 年的免费 SSL 证书,一直用,还挺香,证书快过期的时间还有邮件提醒。但今年,阿里云的免费 SSL 证书变成了 3 个月,而且加短信、邮件提醒还要收费。

这让一直用免费证书的人怎么接受?

所以开始找替代方案。

果然,功夫不负有心人,在 Github 上找到一个工具:Cerbot。

Certbot 是 Let’s Encrypt 官方提供的一个用于申请和配置 SSL 证书的工具。

免费,证书来源靠谱,且自动续期,完美。

本文主要分享 Ubuntu20.04 云原生系统环境下的部署。

准备工作

1. 准备一台云服务器

这里测试用 Ubuntu20.04。

2. 服务器安全组开放 80 和 443 端口

在配置 Let’s Encrypt SSL 证书之前,需要确保服务器的80和443端口已经打开。

这两个端口分别是 HTTP 和 HTTPS 的默认端口,是 SSL 证书配置的必要条件。

3. 准备需要 SSL 证书加密的域名

注意:云服务在国内的话一定要先将域名备案。

4. 将域名解析到服务器公网 IP

如果主域名 和 www 子域名对应的两个域名都要自动配置 SSL 证书,需要把 @ 和 www 都解析到服务器的公网 IP。

安装 Cerbot

在 Ubuntu 服务器上,可以通过以下命令安装 Certbot:

sudo apt update
sudo pip3 install --upgrade pip setuptools
sudo pip3 install --upgrade requests_toolbelt urllib3 
sudo apt install certbot python3-certbot-nginx

安装好 Certbot 后,就可以通过以下命令获取 Let’s Encrypt 的 SSL 证书:

sudo certbot --nginx -d example.com -d www.example.top

这个示例中,-d 指证书要包含的域名。

这里测试证书包含了 example.com、www.example.top 两个域名。

执行这个命令后,也会自动生成自动更新任务。

自动任务由 systemd 的定时器管理,不是 cron,如下检查:

root@iZf8z5b1hu0l3j5h8hw261Z:/etc/nginx/conf.d# systemctl list-timers | grep certbot 
Fri 2024-08-02 02:48:17 CST 12h left n/a n/a certbot.timer certbot.service

检查是否安装正常

检查自动续期是否正确设置,并且工作正常,响应如下:

root@iZf8z5b1hu0l3j5h8hw261Z:/etc/nginx/conf.d# sudo certbot renew --dry-run 
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Processing /etc/letsencrypt/renewal/pokenote.top.conf 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Simulating renewal of an existing certificate for pokenote.top and www.pokenote.top 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Congratulations, all simulated renewals succeeded: 
/etc/letsencrypt/live/pokenote.top/fullchain.pem (success) 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

这篇关于SSL 证书 | 免费获取与自动续期全攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144219

相关文章

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable