站点图标 Linux-技术共享

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

什么是 Certbot?

Certbot 是一个免费的开源软件工具,用于在手动管理的网站上自动使用Let's Encrypt证书以启用 HTTPS。
Certbot 由电子前沿基金会 (EFF) 开发,这是一家位于加利福尼亚州旧金山的 501(c)3 非营利组织,旨在捍卫数字隐私、言论自由和创新。

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

免费SSL证书机器人网站:https://certbot.eff.org/

快速申请免费SSL域名证书

首先打开EFF官方网站https://certbot.eff.org/

点击certbot指令,进入到https证书申请页面上。

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

在Software中选择你服务器上使用的HTTP服务端,在后面的System中选择你服务器的操作系统,下面以Centos8下的Nginx为例子,快速申请https域名证书。

CentOS 8 下的 Nginx申请免费SSL证书

Certbot snap 支持 x86_64、ARMv7 和 ARMv8 架构。虽然我们强烈建议大多数用户通过 snap 安装 Certbot,但您可以在此处找到替代安装说明。

1.SSH 进入服务器

以具有 sudo 权限的用户身份通过​​ SSH 连接到运行您的 HTTP 网站的服务器。

2.安装 snapd

您需要安装 snapd 并确保按照任何说明启用经典 snap 支持。
按照snapcraft 网站上的这些说明安装 snapd。

在 CentOS8 上安装 snap

从 7.6 版本开始,Snap 可用于CentOS 8和 CentOS 7。它也可用于 Red Hat Enterprise Linux (RHEL) 7.6+。

CentOS 8 和 CentOS 7 的软件包位于每个发行版各自的Extra Packages for Enterprise Linux (EPEL) 存储库中。在 CentOS 8 和 CentOS 7 之间添加此存储库的说明略有不同,这就是它们在下面单独列出的原因。

如果您需要知道您运行的是哪个版本的 CentOS,请输入:

1
cat /etc/centos-release

如果您还没有将 CentOS 存储库添加到您的发行版中,可以按如下方式添加。

可以使用以下命令将 EPEL 存储库添加到 CentOS 8 系统:

1
2
sudo dnf install epel-release
sudo dnf upgrade

安装 snapd

将 EPEL 存储库添加到 CentOS 安装后,只需安装snapd包:

1
sudo yum install snapd

安装后,需要启用管理主 snap 通信套接字的systemd单元:

1
sudo systemctl enable --now snapd.socket

要启用经典snap 支持,请输入以下内容以在/var/lib/snapd/snap和之间创建符号链接/snap:

1
sudo ln -s /var/lib/snapd/snap /snap

注意:重新启动系统以确保正确更新 snap 的路径。Snap 现已安装并准备就绪了!

3.确保您的 snapd 版本是最新的

在机器上的命令行执行以下说明,确保您拥有最新版本的snapd。

1
sudo snap install core

4.删除 certbot-auto 和任何 Certbot OS 包

如果您使用操作系统包管理器(如apt、dnf或 )安装了任何 Certbot 包 yum,则应在安装 Certbot snap 之前将其删除,以确保在运行命令时使用的certbot是 snap,而不是从操作系统包管理器安装。具体的命令做到这一点取决于您的操作系统,centos8的卸载命令:

1
sudo dnf remove certbot

如果您之前通过 certbot-auto 脚本使用过 Certbot,您还应该按照此处的说明删除其安装。

5.安装免费SSL证书机器人

在机器上的命令行上运行此命令以安装 Certbot。

1
sudo snap install --classic certbot

6.准备 Certbot 命令

在机器上的命令行执行以下指令,确保certbot命令可以运行。

1
sudo ln -s /snap/bin/certbot /usr/bin/certbot

7.选择您希望如何运行 Certbot

手动设置证书:如果您只想申请证书,并希望手动更改 nginx 配置,请运行此命令。

1
sudo certbot certonly --nginx

自动设置证书:运行下面命令以获取证书并让 Certbot 自动编辑您的 nginx 配置以提供服务,只需几步即可打开 HTTPS 访问。

1
sudo certbot --nginx

第一步:输入电子邮件地址(用于紧急续订和安全通知)(输入'c'取消):输入你的电子邮件,或者按 C 取消。

第二步:请阅读服务条款,网址为https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf。 你必须同意以注册 ACME 服务器。 你同意?选择:Y

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

第三步:一旦您的第一个证书成功颁发,您是否愿意与电子前沿基金会共享您的电子邮件地址Let's Encrypt 项目和非营利组织的合作伙伴开发 Certbot? 我们想向您发送有关我们加密网络工作的电子邮件,EFF 新闻、活动和支持数字自由的方式。选择:Y

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

第四步:您要为哪些名称激活 HTTPS?选择用逗号和/或空格分隔的适当数字,或留下输入空白选择显示的所有选项(输入“c”取消):回车后开始申请域名证书

免费SSL证书机器人:Certbot快速申请自动续订https域名证书

成功获得证书。
证书保存在:/etc/letsencrypt/live/uzbox.tk/fullchain.pem
密钥保存在:/etc/letsencrypt/live/uzbox.tk/privkey.pem
该证书将于 2022-03-07 到期。这些文件将在证书续订时更新。Certbot 已经设置了一个计划任务在后台自动更新这个证书。

部署证书
uzbox.tk证书成功部署到/etc/nginx/nginx.conf
恭喜! 您已在 https://uzbox.tk 上成功启用 HTTPS

8.免费SSL自动续订测试

您系统上的 Certbot 软件包带有一个 cron 作业或 systemd 计时器,它们会在您的证书到期之前自动更新您的证书。除非您更改配置,否则您无需再次运行 Certbot。您可以通过运行以下命令来测试证书的自动续订:

1
sudo certbot renew --dry-run

更新 certbot 的命令安装在以下位置之一:

9.确认 Certbot 工作

要确认您的站点设置正确,请访问您的网站是否能正常打开,并在浏览器的 URL 栏中查找锁头的图标。

10.如何在ssl证书内新增域名

在同一台服务器上建立多个网站的时候,每个网站的域名都需要申请ssl证书。Certbot证书机器人可以将nginx内的所有域名,统一存放在一套ssl证书中。方便SSL证书管理更新维护!

新增加域名到SSL证书中的方法:

在nginx中配置绑定你需要申请证书的新域名,域名绑定后,重新启动nginx服务,或者重新启动服务器使nginx配置生效。然后在服务器上输入下面的命令,使用Certbot证书机器人开始申请证书。

1
sudo certbot certonly --nginx

使用上面命令,手动设置SSL域名证书。

1
2
3
4
5
6
7
8
9
10
Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: nginx中你配置绑定过的域名

2: nginx中你之前申请过的域名
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel):

按回车键进行下一步申请。

1
2
3
4
5
6
7
8
9
10
11
You have an existing certificate that contains a portion of the domains you
requested (ref: /etc/letsencrypt/renewal/uzbox.tk.conf)

It contains these names: 证书中原有的域名

You requested these names for the new certificate: 新增域名后,全部的域名

Do you want to expand and replace this existing certificate with the new
certificate?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(E)xpand/(C)ancel: e

按E进行下一步操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Renewing an existing certificate for uzbox.tk and 4 more domains

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/uzbox.tk/fullchain.pem
Key is saved at: /etc/letsencrypt/live/uzbox.tk/privkey.pem
This certificate expires on 2022-04-19.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

新的域名ssl证书申请好了,域名ssl证书地址还是之前的证书地址,在nginx中无需更改。

退出移动版