This post is created 4 years ago, the content may be outdated.
方法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.pem
和ssl_certificate_key /etc/letsencrypt/live/usodesu.ga/privkey.pem;
。
90天后续签也是用的同一条命令。Certbot会自动更新已存在的证书。