阿里云送的20张免费额度证书
,原先有效期是一年
的,但随着政策的改变,一年
有效期变成三个月
了,所以继续使用就没有必要了,可以安装 Certbot
来签发证书,并自动续期。
官方文档
1、检查你的 DNS
提供商是否受支持
通过查看 文档 中的列表,查看 Certbot
是否支持您的 DNS
提供商
2、通过 SSH
连接到服务器
以具有 sudo
权限的用户身份通过 SSH
连接到运行 HTTP
网站的服务器
3、安装 snapd
您需要安装 snapd
并确保按照任何说明启用经典 snap
支持
按照 snapcraft 网站上的这些说明安装 snapd
3.1、在 Debian 10 (Buster)
和 Debian 9 (Stretch)
上,snap
可以直接从命令行安装
3.2、注销并重新登录,或重新启动系统,以确保 snap
的路径正确更新
3.3、重新连接服务器之后,安装 snap
以获取最新的 .core snapd
输出以下信息代表安装成功
1
| core 16-2.45.2 from Canonical✓ installed
|
3.4、要测试您的系统,请安装 hello-world snap
并确保它正常运行
1
| sudo snap install hello-world
|
输出以下信息代表安装成功
1
| sudo snap remove hello-world
|
4、删除 certbot-auto
和任何 Certbot OS
软件包
1
| sudo apt-get remove certbot
|
5、安装 Certbot
1
| sudo snap install --classic certbot
|
6、准备 Certbot
命令
在机器的命令行上执行以下指令设置软链接,确保 certbot
命令可以运行
1
| sudo ln -s /snap/bin/certbot /usr/bin/certbot
|
7、确认插件包含级别
在计算机上的命令行上运行此命令,以确认已安装的插件将具有与 Certbot snap
相同的包含。classic
1
| sudo snap set certbot trust-plugin-with-root=ok
|
8、安装正确的 DNS
插件
如果您的 DNS
提供商是 Cloudflare
,您需运行以下命令
1
| sudo snap install certbot-dns-cloudflare
|
9、设置 DNS
凭据
使用此插件需要一个包含 Cloudflare API
凭证的配置文件,该文件可从您的 Cloudflare
仪表板获取
以前,Cloudflare
的 全局 API 密钥
用于身份验证,但是此密钥可以访问您帐户中所有域的整个 Cloudflare API
,这意味着如果泄露,它可能会造成很大的损害
Cloudflare 较新的 API 令牌
可以限制为特定的域和操作,因此现在是推荐的身份验证选项
Certbot
所需的令牌仅需要您需要证书的区域的权限 Zone:DNS:Edit
- 在
root
用户文件夹下建一个 ~/.secrets/certbot/cloudflare.ini
文件
1
| mkdir -p ~/.secrets/certbot
|
1
| touch ~/.secrets/certbot/cloudflare.ini
|
1
| vim ~/.secrets/certbot/cloudflare.ini
|
1 2
| dns_cloudflare_api_token = hu3tMEMQmz6Ao8r-PmqVcxHtHmGjjneXjXQYga0O
|
1
| chmod 600 ~/.secrets/certbot/cloudflare.ini
|
600
权限意味着只有文件的所有者才具有对它的完全读写访问权限。一旦文件权限设置为 600
,其他任何人都无法访问该文件。不设置的话,获证书的时候 Certbot
会红色错误提示。
10、运行 DNS
提供商说明的示例
部分中的命令获取证书
1
| certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d test.ysbzcn.com --email 'email@ysbzcn.com'
|
参数详解:
certbot certonly
若要仅获取证书而不将其安装在任何位置,可以使用(“仅证书”)命令。
–dns-cloudflare-credentials Cloudflare credentials INI
文件。(必填)
-d
指定域名
–register-unsafely-without-email
不加这行命令会报错,加了就不会再有强制输入邮箱的提示,官方不推荐这样做。
11、测试自动续费
系统上的 Certbot
软件包附带一个 cron
作业或 systemd
计时器,它们将在证书过期之前自动续订证书。除非您更改配置,否则您无需再次运行 Certbot
。您可以通过运行以下命令来测试证书的自动续订
1
| sudo certbot renew --dry-run
|
12、确认 Certbot
工作正常
要确认您的网站设置正确,请在浏览器中访问并在 URL
栏中查找锁定图标