index.html

Let'sEncrypt 泛域名证书申请及续签

Word count: 415Reading time: 1 min
2018/07/07 Share

方法1

工具安装

acme.sh是很方便的Let’sEncrypt证书管理工具。项目地址

使用以下命令安装acme.sh
建议使用root用户(sudo su)操作,以免自动续签时无权重启Web服务

1
curl https://get.acme.sh | sh

1
wget -O -  https://get.acme.sh | sh

再或

1
2
3
git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install

开启自动升级

1
acme.sh --upgrade --auto-upgrade

证书签发

签发证书需要DNS TXT记录验证域名,使用域名服务提供商的API可以简化操作。
acme.sh支持大部分DNS服务商,本例中为Cloudflare。详见How to use DNS API

1
2
export CF_Key="ashitlongapikeythatnobodyknowsbutyou"
export CF_Email="[email protected]"

为主域名以及其泛域名签发证书

1
acme.sh --issue --dns dns_cf -d "example.com" -d "*.example.com"

证书安装(Nginx)

1
2
3
4
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "systemctl restart nginx"

证书续签

每60天会自动续签证书,不用操心,但也可以手动续签。

1
acme.sh --renew -d example.com --force

方法2

按照官方的教程从这里下载安装Certbot后使用以下命令申请证书:

1
certbot certonly --manual --preferred-challenges dns --agree-tos --server https://acme-v02.api.letsencrypt.org/directory -d "usodesu.ga" -d "*.usodesu.ga"

依据提示操作即可,要配置两条DNS TXT记录。

注意要让主域名和泛域名同时包含在一个证书里,泛域名的证书不能用在主域名上。

申请到的证书和密钥分别保存(连接)在/etc/letsencrypt/live/usodesu.ga/fullchain.pemssl_certificate_key /etc/letsencrypt/live/usodesu.ga/privkey.pem;

90天后续签也是用的同一条命令。Certbot会自动更新已存在的证书。


EOF

CATALOG
  1. 1. 方法1
    1. 1.1. 工具安装
    2. 1.2. 证书签发
    3. 1.3. 证书安装(Nginx)
    4. 1.4. 证书续签
  2. 2. 方法2