描述:首先科普一下,泛域名指带通配符的域名,例如:*.domain.com、*.chenbo.info 均为泛域名,包含同一级的全部子域名。注意二级泛域名 *.domain.com 不支持三级域名 example.ssl.domain.com。前期准备:1、一台 Linux 机器(教程使用 Centos…
首先科普一下,泛域名指带通配符的域名,例如:*.domain.com、*.chenbo.info 均为泛域名,包含同一级的全部子域名。注意二级泛域名 *.domain.com 不支持三级域名 example.ssl.domain.com。
前期准备:
1、一台 Linux 机器(教程使用 Centos 7) 2、DNSPod API Token 3、一个域名1、一台 Linux 机器(教程使用 Centos 7) 2、DNSPod API Token 3、一个域名1、一台 Linux 机器(教程使用 Centos 7) 2、DNSPod API Token 3、一个域名
操作过程:
第一、安装必要的软件包
直接运行脚本会有提示"It is recommended to install socat first"等错误信息,需要提前安装必备软件包。这里有参考"https://www.cmsky.com/lets-encrypt-wildcard-ssl/"的文章介绍。
1)Debian/Ubuntu
apt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get update && apt-get install curl -y && apt-get install cron -y && apt-get install socat -y
2)CentOS
yum <span class="hljs-keyword">update</span> && yum <span class="hljs-keyword">install</span> curl -y && yum <span class="hljs-keyword">install</span> cron -y && yum <span class="hljs-keyword">install</span> socat -yyum <span class="hljs-keyword">update</span> && yum <span class="hljs-keyword">install</span> curl -y && yum <span class="hljs-keyword">install</span> cron -y && yum <span class="hljs-keyword">install</span> socat -yyum update && yum install curl -y && yum install cron -y && yum install socat -y
若此时报错没有socat包或是找不到socat包,解决方法安装centos的epel的扩展源(未报错,请跳过)
yum -y <span class="hljs-keyword">install</span> epel-<span class="hljs-keyword">release</span>yum -y <span class="hljs-keyword">install</span> socat #重新安装socatyum -y <span class="hljs-keyword">install</span> epel-<span class="hljs-keyword">release</span> yum -y <span class="hljs-keyword">install</span> socat #重新安装socatyum -y install epel-releaseyum -y install socat #重新安装socat
第二、安装acme.sh
<span class="hljs-attribute">curl</span> https://get.acme.sh | sh<span class="hljs-attribute">curl</span> https://get.acme.sh | shcurl https://get.acme.sh | sh
第三、获取DNSPOD API
1、在 DNSPod 控制台申请 API Token,这里我们获取到了 ID 和 Token 以便接下来使用。
2、依次输入以下命令,其中 DP_Id 是刚刚申请的 ID,DP_Key 是刚刚申请的 Token 值,第一个 -d 后面填写一级域名,第二个 -d 后面填写泛域名。
<span class="hljs-built_in">export</span> DP_Id=<span class="hljs-string">"ID数字"</span><span class="hljs-built_in">export</span> DP_Key=<span class="hljs-string">"Token字符串"</span>.acme.sh/acme.sh --issue --dns dns_dp <span class="hljs-_">-d</span> chenbo.info <span class="hljs-_">-d</span> *.chenbo.info<span class="hljs-built_in">export</span> DP_Id=<span class="hljs-string">"ID数字"</span> <span class="hljs-built_in">export</span> DP_Key=<span class="hljs-string">"Token字符串"</span> .acme.sh/acme.sh --issue --dns dns_dp <span class="hljs-_">-d</span> chenbo.info <span class="hljs-_">-d</span> *.chenbo.infoexport DP_Id="ID数字"export DP_Key="Token字符串".acme.sh/acme.sh --issue --dns dns_dp -d chenbo.info -d *.chenbo.info
在SSH中依次粘贴进去敲回车。
第四、签发证书SSL
接下来脚本会自动等待 120 秒来验证信息,签发成功后,就会给出 CSR、KEY、CERT 保存的路径 /root/.acme.sh/chenbo.info/
[Fri Aug 10 09:53:52 EDT 2018] Your cert is in /root/.acme.sh/chenbo.info/chenbo.info.cer
[Fri Aug 10 09:53:52 EDT 2018] Your cert key is in /root/.acme.sh/chenbo.info/chenbo.info.key
[Fri Aug 10 09:53:52 EDT 2018] The intermediate CA cert is in /root/.acme.sh/chenbo.info/ca.cer
[Fri Aug 10 09:53:52 EDT 2018] And the full chain certs is there: /root/.acme.sh/chenbo.info/fullchain.cer
我们可以下载到本地保存或者是在应用证书的时候直接调用这个目录的证书。且从文档中看到这个脚本"自动为你创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书",所以我们在部署SSL的时候直接调用默认位置,不要复制到其他目录。
第五、新增域名及重新生成证书、更新颁发脚本
新增域名:
<span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--issue</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">www</span><span class="hljs-selector-class">.domain</span><span class="hljs-selector-class">.com</span> <span class="hljs-selector-tag">-d</span> *<span class="hljs-selector-class">.domain</span><span class="hljs-selector-class">.com</span> <span class="hljs-selector-tag">--dns</span> <span class="hljs-selector-tag">dns_dp</span><span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--issue</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">www</span><span class="hljs-selector-class">.domain</span><span class="hljs-selector-class">.com</span> <span class="hljs-selector-tag">-d</span> *<span class="hljs-selector-class">.domain</span><span class="hljs-selector-class">.com</span> <span class="hljs-selector-tag">--dns</span> <span class="hljs-selector-tag">dns_dp</span>acme.sh --issue -d www.domain.com -d *.domain.com --dns dns_dp
重新生成证书:
<span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--renew</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">mydomain</span><span class="hljs-selector-class">.com</span><span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--renew</span> <span class="hljs-selector-tag">-d</span> <span class="hljs-selector-tag">mydomain</span><span class="hljs-selector-class">.com</span>acme.sh --renew -d mydomain.com
更新acme.sh:
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
<span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--upgrade</span><span class="hljs-selector-tag">acme</span><span class="hljs-selector-class">.sh</span> <span class="hljs-selector-tag">--upgrade</span>acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --<span class="hljs-keyword">auto</span>-upgradeacme.sh --upgrade --<span class="hljs-keyword">auto</span>-upgradeacme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
apt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -y0acme.sh --upgrade --auto-upgrade 0
更新最新版后,所有证书保存的路径: /www/server/panel/vhost/cert/
acme.sh有不少实用的参数可以方便我们来管理已经通过acme.sh申请过证书、域名等等,比如:
apt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -y1acme.sh --list
具体的参数,大家可以使用
apt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -y2acme.sh --help
来查看。
2019.7.3新增:
之后在SSL界面每次自动使用如下命令更新
apt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -yapt-get <span class="hljs-keyword">update</span> && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> curl -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> cron -y && apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> socat -y3acme.sh --renew-all --force
不愿意登录SSL界面的,可以在宝塔计划任务中添加如下任务,再运行强制续签证书,续签完成后删除该任务:
(限制于宝域面板最长只能31天的执行周期)
第六、注意事项
1、通过这篇文章,我们可以快速利用DNSPOD API获取Lets Encrypt泛域名证书。在得到签发的证书之后,如若为了域名解析安全,可以在 DNSPod 删除 Token。
2、签发的证书有效期为 3 个月,之后需要重新申请。脚本自动为了创建自动续约,方便我们在90天到期之后还需要处理续约问题。
3、在申请签发的过程中脚本会调用 API 自动添加两条 TXT 记录进行验证,在申请成功之后会自动删除这两条记录。
4、下载 acme.sh 脚本需要在 acme.sh 以及 github.com 拉取文件,所以国内的一些机器可能无法正常运行。
5、为了方便使用,可以安装BT面板,可视化管理文件。https://www.bt.cn/
pbootcms内核开发的网站模板,该模板适用于微信小程序网站、软件开发网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;PC+WAP,同一个后台,数据即时同步,简单适用!附带测试数据!友好的seo,所有页面均都能完全自定义标题/关键词/描述,PHP程序,安全、稳定、快速;用低成…
(PC+WAP)粉色家政服务公司网站模板 月嫂保姆网站源码下载pbootcms内核开发的网站模板,该模板适用于家政服务公司网站、月嫂保姆网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;PC+WAP,同一个后台,数据即时同步,简单适用!附带测试数据!友好的seo,所有页…
(PC+WAP)红色火锅加盟网站pbootcms模板 餐饮美食网站源码下载pbootcms内核开发的网站模板,该模板适用于火锅加盟网站、餐饮美食网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;PC+WAP,同一个后台,数据即时同步,简单适用!附带测试数据!友好的seo,所有页面…
(PC+WAP)绿色草坪地坪施工pbootcms网站模板 操场人造草坪网站源码下载pbootcms内核开发的网站模板,该模板适用于人造草坪网站、草坪地坪网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可;PC+WAP,同一个后台,数据即时同步,简单适用!附带测试数据!友好的seo,…
本套织梦模板采用织梦最新内核开发的模板,这款模板使用范围广,不仅仅局限于一类型的企业,政府部门、单位机构类的网站都可以用该模板。你只需要把图片和文章内容换成你的即可,颜色都可以修改,改完让你耳目一新的感觉!布局规整,利于用户体验,手工书写DIV+CSS,代码精简。同一个后台管理 三网合一简…
1.更新下载类目的采集 及 导入网站程序:jizhiCMS + 高仿新版某刀资源网模板采集程序:蓝天采集 + 已对接好资源站规则网站图片及蓝天采集规则安装教程在下面⬇⬇⬇⬇⬇⬇⬇ 链接:https:/…