OneinStack 使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书
acme.sh脚本申请证书
./vhost.sh --dnsapi
前面我们介绍了使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书,其实包,一般自己安装不依赖一键包的童鞋根本不需要看之前的那篇文章,直接看GITHUB的项目说明就可以了,这里我说下oneinstack一键包使用acme.sh脚本申请Let’s Encrypt 泛域名SSL证书中间遇到的一些坑。
官方步骤
Let’s Encrypt 发布的 ACME v2 现已正式支持通配符证书,为更方便的管理证书,Oneinstack "更多关于 Oneinstack 的文章")之后使用acme.sh管理证书。
2018-03-18之前版本使用certbot:
./addons.sh
选择7,安装Let’s Encrypt客户端vhost.sh ssl
和Let’s Encrypt都选择y即可
2018-03-18之后版本使用acme.sh:
- ./vhost.sh 选择Let’s Encrypt后,自动安装acme.sh,建议升级oneinstack,执行:/root/oneinstack/upgrade.sh oneinstack
当vhost.sh绑定域名为单个泛域名时,如:0513c.com *.0513c.com,证书签发走acme.sh dnsapi
模式,需要输入API相关变量,否则走acme.sh webroot
模式。
DNS提供商 | DNS简称 | API参数 | 链接 |
---|---|---|---|
cloudflare | cf | export CF_Key=key export CF_Email=admin@example.com | 访问链接 |
dnspod | dp | export DP_Id=id export DP_Key=key | 访问链接 |
cloudxns | cx | export CX_Key=key export CX_Secret=secret | 访问链接 |
godaddy | gd | export GD_Key=gdkey export GD_Secret=gdsecret | 访问链接 |
aws | aws | export AWS_ACCESS_KEY_ID=aws123 export AWS_SECRET_ACCESS_KEY=awskey | 访问链接 |
aliyun | ali | export Ali_Key=key export Ali_Secret=secret | 访问链接 |
Linode | linode | export LINODE_API_KEY=linodekey | 访问链接 |
freedns | freedns | export FREEDNS_User=user export FREEDNS_Password=password | freedns用户名密码 |
he | he | export HE_Username=username export HE_Password=password | he用户名密码 |
namesilo | namesilo | export Namesilo_Key=namesilokey | 访问链接 |
digitalocean | dgon | export DO_API_KEY=dgonkey | 访问链接 |
namecom | namecom | export Namecom_Username=username export Namecom_Token=token | 访问链接 |
更多参考:https://github.com/Neilpang/acme.sh/tree/master/dnsapi
oneinstack通配符证书
遇坑刨坑
1、按照上图操作,在设置好访问DNS服务商的参数变量后,执行过程中会出现:
Let’s Encrypt“DNS problem: NXDOMAIN looking up A
这里技术宅的解决方法是-在服务器内部ping设置的域名,如果ping 0513c.com 显示的是绑定的域名而不是本地域名就用0513c.com来签发,否则用jszbug.com,这种错误一般是我们临时更换了解析本地没生效导致的!
2、设置DNS服务商的参数变量格式是:
export Ali_Key=key;export Ali_Secret=secret
3、生成的证书路径:/root/.acme.sh/domain(首次在流程中输入的域名)
我们需要使用的是如图箭头指示的,将fullchain.cer改为需要的名称,如0513c.com.cer。这里涉及到证书链的完整,具体不加以阐述,百度很多人会出现生成Let’s Encrypt 泛域名SSL证书检测出现证书链不完整,缺少CA,但是oneinstack将这些文件都生成了,可以达到后顾无忧!(fullchain.cer后缀可以直接改为.crt)