使用acme.sh免费签发SSL证书

github: https://github.com/Neilpang/acme.sh
或者直接访问: https://acme.sh

功能介绍:

支持派发的证书有:
1.Letsencrypt.org CA
2.BuyPass.com CA
3.Pebble strict Mode

支持签发ECDSA类型(ECC)
支持自动续签
多种签发模式(本地服务器,80端口,443端口,nginx,阿帕奇,dns 等等)
无需烦琐配置,几条命令即可搞定

安装

连接SSH,打开命令行(这个我就不教了,不懂百度)
# 然后 二选一

curl https://get.acme.sh | sh
或
wget -O -  https://get.acme.sh | sh

然后就完成安装了,后面分别介绍 Let's EncryptBuyPass 证书签发
博主使用的签发方式是DNS API(推荐),优势是不依靠服务器,自动续签.

注意,在安装完成后关闭SSH控制台,然后重新连接SSH控制台!!!

打开链接: https://github.com/Neilpang/acme.sh/wiki/dnsapi
查看是否支持你的DNS服务(现在大部分都是支持的,除非你的DNS服务商冷门,或者没有API)
不同服务商, 关键词字段不一样,所以要去上面给的链接查看
我用的阿里云DNS,所以使用的命令是:

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

Snipaste_2019-11-19_17-59-29.png
把key改成自己的以后在命令行粘贴运行就设置好DNSAPI了,下次签发证书就可以重复使用,无需再次设置了

签发 Let's Encrypt 证书(有效期90天,支持泛域名)

把sm.link改成你自己的域名.
注意第2行的 --dns dns_ali 字段, 把 dns_ali 改成你的DNS服务商字段, 在上方给的API链接查看.
单个证书支持签发多个域名,使用 -d 分隔. 泛解析需要引号括起来.

acme.sh --issue -d sm.link -d www.sm.link -d '*.sm.link' \
        --dns dns_ali \
        --keylength ec-256 \  # 此字段用于签发ECC证书,不需要请删除此行
        --days 60  # 此字段用于指定续签时间,60就是60天续签一次,不需要请删除此行

没明白的看下图就知道了:
Snipaste_2019-11-19_18-12-29.png

至此就完成了 Let's Encrypt 证书的签发.
签发后证书默认保存在 root/.acme.sh/你的域名 目录.
fullchain.cer 文件是你的证书(证书和中间件), 安装SSL的时候就用它
你的域名.key 文件是你的key
剩下几个就不说了,一般用不上,或者你可以到官方文档了解


签发 BuyPass 证书(有效期180天,不支持泛域名)

欧洲的一家公司,最近才推出这个免费证书的.

首次使用需要注册, 输入命令:
acme.sh --server https://api.buypass.com/acme/directory \
        --register-account  --accountemail me@example.com

# 把 me@example.com 改成你的邮箱
开始签发:
acme.sh --server https://api.buypass.com/acme/directory  \
        --issue -d sm.link -d www.sm.link \
        --dns dns_ali \
        --keylength ec-256 \  # 此字段用于签发ECC证书,不需要请删除此行
        --days 90  # 此字段用于指定续签时间,90就是90天续签一次,不需要请删除此行

# sm.link 改为你的域名,增加域名使用 `-d` 分隔

然后就完成证书签发了.
Snipaste_2019-11-19_18-49-49.png

DNS手动签发

有些朋友的DNS服务商可能没有API,这时可以使用手动验证的方式

Let's Encrypt

# 把域名改为你的,然后运行下方命令,之后会要求你解析TXT记录,按要求解析好
acme.sh --issue  -d sm.link -d "*.sm.link"  --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

# TXT记录解析完毕后,再运行下方命令,就可以签发成功了
acme.sh --renew  -d sm.link -d "*.sm.link"  --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

BuyPass

# 把域名改为你的,然后运行下方命令,之后会要求你解析TXT记录,按要求解析好
# 注意,不支持泛解析!!!
acme --server https://api.buypass.com/acme/directory --issue -d sm.link --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

# TXT记录解析完毕后,再运行下方命令,就可以签发成功了
acme --server https://api.buypass.com/acme/directory --renew -d sm.link --yes-I-know-dns-manual-mode-enough-go-ahead-please

教程就到这里,如果你还有什么不清楚的,可以在下方留言, 或者到项目的wiki查看文档.

最后修改:2020 年 05 月 25 日 10 : 00 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论