跳转至

教你如何免费获取域名证书

前言

免费获取证书的提供者是“Let’s Encrypt”,它的工作方式详情可参阅官方文档“《Let’s Encrypt的运作方式》”。

服务器证书一般用于提供WEB服务,在申请证书前应当有一个合法(备案过)的域名。在开始前,请确保自己已经拥有域名,且已经在DNS上与自己的服务器绑定。

以操作系统“CentOS 8”进行演示,想了解其它系统的操作,可参阅最后面的“资源”章节。


准备操作

1. SSH到你的服务器

ssh user@your_sever_domain

2. 安装snpad

  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

  1. 删除系统内置的certbot

    sudo dnf remove certbot
    
  2. 安装certbot

    sudo snap install --classic certbot
    
  3. 利用符号链接完成certbot的安装;保证可以直接在终端执行命令

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

获取证书

  1. 签发域名证书“example.domain.cn”

    • 命令格式为sudo certbot certonly --standalone -d <domain>,因此:
    sudo certbot certonly --standalone -d example.domain.cn
    

    注意

    执行前需要确保80端口未被占用,domain是想要获取证书的域名;

  2. 查看证书目录:执行完之后证书将被安装在目录“/etc/letsencrypt/live”下,用ls查看一下能看到example.domain.cn目录,里面放的就是刚签发的证书相关文件,目录结构如下:

    www.example.com/
    |-- cert.pem/      => 服务器证书
    |-- chain.pem/     => 中间证书
    |-- fullchain.pem/ => 将中间证书和服务器证书放到一起的完整证书链,一般我们使用的是该文件
    |-- privacy.pem/   => 私钥
    

自动更新证书

  1. 测试自动更新功能是否可用
sudo certbot renew --dry-run
  1. 开启自动更新
sudo certbot renew

资源

centos8安装手册
CentOS安装手册示例图

评论