永久自动获得免费得HTTPS证书

前提

拥有域名,拥有公网IP的服务器

官方主页了解一下

certbot参考学习。

功能描述

  1. 用于获取HTTPS证书并自动更新
  2. 可以对代理文件进行自动维护

    环境

  • OS: CentOS7
  • 网站服务器: Nginx

    安装

  1. 官方推荐首先安装snapd,选择自己的系统进行安装。

    通过命令 cat /etc/centos-release 确认自己的系统版本

以安装centos7为例

1
2
3
4
5
6
7
8
# 可以使用以下命令将EPEL存储库添加到CentOS 7系统#
1. sudo yum install epel-release
# 将EPEL存储库添加到CentOS安装中后,只需安装snapd软件包:
2. sudo yum install snapd
# 安装后,需要启用用于管理主快照通信套接字的systemd单元:
3. sudo systemctl enable --now snapd.socket
# 要启用经典快照支持
4. sudo ln -s /var/lib/snapd/snap /snap

最后系统提示 重启系统去确保snap被正确的安装。但是我没有重启也可以使用

安装certbot

1
2
3
4
5
6
# 安装前先确保你的nsap保持的是最新的版本
sudo snap install core; sudo snap refresh core
# 安装certbot
sudo snap install --classic certbot
# 确保certbot命令可以被运行
sudo ln -s /snap/bin/certbot /usr/bin/certbot

创建SSL证书并配置

1
2
sudo certbot --nginx

第一次创建的时候会提示你输入邮箱,一个开启模式,一个是是否同意协议。

之后会创建会有提示:

你可以选择需要创建的域名,也可以选择全部。

创建好之后的效果

红色部分是cerbot 自动写入的。

设置自动续期

因为certbot生成的有效证书是三个月,为了方便,可以实现自动续期。

我们可以通过Linux自带的cron来实现自动续期

创建一个文件内容写 文件名xxxx

1
2
0 */12 * * * certbot renew --quiet --renew-hook "/etc/init.d/nginx reload"

系统中执行

1
crontab xxxx 

系统会每天检查证书是否需要更新,如果更新了之后会对nginx重载。