# 安装acme.sh
# GitHub地址
|
|
# 安装
sudo apt update
sudo apt install curl
curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh -h
有帮助输出便是安装成功
# 签发证书
这里是签发通配符证书,所以不能像以前使用http验证法了 用dns验证法当然要用api啦 自己修改不仅累死还会忘
# 使用api
我这使用了cloudflare的api
export CF_Key="233"
export CF_Email="233@1.com"
key填cloudflare的key
Email填账号Email
如果你使用dnspod
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
# 开始签发
不仅支持san还支持泛域名
可以这样写
acme.sh --dns dns_cf --issue -d a.com -d \*.a.com -d a.me -d \*.a.me -k ec-256
上面的命令就签发了以下四个域名的ecc证书,在一张证书里。
a.com
*.a.com
a.me
*.a.me
然后acme.sh就会根据api修改你的dns记录
还可以签发rsa证书使网站支持ecc+rsa双证书
acme.sh --dns dns_cf --issue -d a.com -d \*.a.com -d a.me -d \*.a.me
输出如下
Your cert is in /home/srotiy/.acme.sh/*.a.com/*.a.com.cer
Your cert key is in /home/srotiy/.acme.sh/*.a.com/*.a.com.key
The intermediate CA cert is in /home/srotiy/.acme.sh/*.a.com/ca.cer
And the full chain certs is there: /home/srotiy/.acme.sh/*.a.com/fullchain.cer
所有关于该证书的文件就会存在以证书命名的文件夹中
如果是ecc证书,文件夹会看起来像这样
Your cert is in /home/srotiy/.acme.sh/*.a.com_ecc/*.a.com.cer
Your cert key is in /home/srotiy/.acme.sh/*.a.com_ecc/*.a.com.key
The intermediate CA cert is in /home/srotiy/.acme.sh/*.a.com_ecc/ca.cer
And the full chain certs is there: /home/srotiy/.acme.sh/*.a.com_ecc/fullchain.cer
*.a.com.cer是证书文件
*.a.com.key是密钥
ca.cer是根证书和中级证书
fullchain.cer是已经带有根证书和中级证书的全部证书
# 部署证书
如果部署双证书可以这样写nginx的配置文件
|
|
然后配置ecc的证书
|
|
然后配置rsa证书
|
|
开启hsts
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
# 自动续期?
crontab -l
如果输出这样一串信息
10 0 * * * "/home/srotiy/.acme.sh"/acme.sh --cron --home "/home/srotiy/.acme.sh" > /dev/null
就可以自动续期
此命令是每天的00:10进行续期检测
程序会自动检测到期时间
如果不到一个月
便会续期。
如果时间还长
便会跳过 。