前言
免费获取证书的提供者是“Let’s Encrypt”,它的工作方式详情可参阅官方文档“《Let’s Encrypt的运作方式》”。
服务器证书一般用于提供WEB服务,在申请证书前应当有一个合法(备案过)的域名。在开始前,请确保自己已经拥有域名,且已经在DNS上与自己的服务器绑定。
以操作系统“CentOS 8”进行演示,想了解其它系统的操作,可参阅最后面的“资源”章节。
准备操作
1. SSH到你的服务器
代码语言:javascript复制ssh user@your_sever_domain
2. 安装snpad
代码语言:javascript复制# 1. 安装EPEL仓库
sudo dnf install epel-release
sudo dnf upgrade
# 2. 安装snpd
sudo yum install snapd
# 3. 设置snpd开机自启动
sudo systemctl enable --now snapd.socket
# 4. 为了兼容旧版本的snpad,需要创建符号连接
sudo ln -s /var/lib/snapd/snap /snap
# 5. 更新snap
sudo snap install core; sudo snap refresh core
3. 安装certbot
代码语言:javascript复制# 1. 删除系统内置的certbot
sudo dnf remove certbot
# 2. 安装certbot
sudo snap install --classic certbot
# 3. 利用符号链接完成certbot的安装;保证可以直接在终端执行命令
sudo ln -s /snap/bin/certbot /usr/bin/certbot
获取证书
代码语言:javascript复制# 执行前需要确保80端口未被占用,下方的domain是想要获取证书的域名;
# 格式为:sudo certbot certonly --standalone -d <domain>
sudo certbot certonly --standalone -d example.domain.cn
# 证书将被安装在目录“/etc/letsencrypt/live/”下;
# 用ls查看一下,能看到“example.domain.cn”目录
ls -l /etc/letsencrypt/live/
# 查看一下目录中的文件;有以下文件:
# cert.pem => 服务器证书
# chain.pem => 中间证书
# fullchain.pem => 将中间证书和服务器证书放到一起的完整证书链,一般我们使用的是该文件
# privacy.pem => 私钥
ls -l /etc/letsencrypt/live/example.domain.cn/
自动更新证书
代码语言:javascript复制# 测试自动更新功能是否可用
sudo certbot renew --dry-run
# 开启自动更新
sudo certbot renew
资源
- 《官方CentOS 8安装手册》:通过此页面可以跳转到其他操作系统的安装手册。