使用Snap在CentOS 7上安装和更新证书

532 阅读2分钟

CentOS 7 安装 Certbot 并更新证书(使用 Snap)

原文

背景

目前 certbot 不推荐在 CentOS 7 上使用仓库安装,官方建议使用 snap 进行 certbot 的安装和更新。

安装 Snapd

在 CentOS 7.6 以上版本均可使用 Snap。如果不知道你的版本,使用如下命令查看:

cat /etc/centos-release

添加 CentOS repository

CentOS 8

sudo dnf install epel-release
sudo dnf upgrade

CentOS 7

sudo yum install epel-release

添加 EPEL repository 后,进行 Snapd 的安装

bashCopy code
sudo yum install snapd

安装后,需要启用管理 snap 通信套接字的 systemd unit

sudo systemctl enable --now snapd.socket

为了启用 classic snap 的支持,需要创建如下软连接

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

重新登录或者重启你的系统,以确保 snap 的路径正确更新,至此 snap 安装完成。

安装 Certbot

升级 snap

执行如下命令以保证 Snap 为最新的版本:

sudo snap install core
sudo snap refresh core

卸载 Certbot 和其他 Certbot OS 包

在安装 Certbot snap 之前,确保将通过操作系统包管理器(如 apt、dnf 或 yum)安装的任何 Certbot 包删除。

安装 Certbot

sudo snap install --classic certbot

配置 Certbot 命令行

执行如下命令以确保 Certbot 命令行可用:

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

运行 Certbot(二选一)

  1. 运行此命令获取证书,并让 Certbot 自动编辑 Nginx 配置以提供服务,只需一步即可打开 HTTPS 访问:
sudo certbot --nginx

注:Certbot 默认 nginx 配置文件在 /etc/nginx/nginx.conf/usr/local/etc/nginx/nginx.conf,若你的 nginx 配置文件不在此处(以 /usr/local/nginx/conf/nginx.conf 为例),需在命令后加上 --nginx-server-root /usr/local/nginx/conf

  1. 仅获得证书。如果你希望手动配置 nginx,输入如下命令:
sudo certbot certonly --nginx

自动续期

Certbot 包带有 cron 作业或 systemd 计时器,它将在证书过期之前自动续订证书。除非更改配置,否则不需要再次运行 Certbot。通过运行以下命令,可以测试证书的自动续订:

sudo certbot renew --dry-run

renew 的命令被配置到以下位置中的一个:

  • /etc/crontab/
  • /etc/cron.*/*
  • systemctl list-timers