宝塔面板下免费申请Let’s Encrypted泛域名证书及其解析教程

2018年3月30日22:21:48 发表评论 1,768 views

首先科普一下,泛域名指带通配符的域名,例如:*.domain.cn、*. baidu.com均为泛域名,包含同一级的全部子域名。注意二级泛域名 *.domain.com 不支持三级域名 web.ssl.domain.cn。

  1. 战前准备
  2. 一台 Linux 机器(教程使用 Centos 7)
  3. DNSPod API Token
  4. 一个域名(教程使用 domain.cn)

1、在机器上安装相关环境依赖

yum update -y && yum -y install curl cron socat

2、下载安装 acme.sh 脚本。

curl https://get.acme.sh | sh

3、在 DNSPod 控制台申请 API Token,这里我们获取到了 ID 和 Token 以便接下来使用。

在Aliyun控制台申请的地址是:https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fak-console.aliyun.com%2F%3Fspm%3D5176.2020520001.0.0.0EJtVx#/accesskey

狗爹Godaddy申请api的地址:https://developer.godaddy.com/keys/

宝塔面板下免费申请Let's Encrypted泛域名证书及其解析教程

宝塔面板下免费申请Let's Encrypted泛域名证书及其解析教程

4、依次输入以下命令,其中 DP_Id 是刚刚申请的 IDDP_Key 是刚刚申请的 Token 值。

DNSpod输入如下:

export DP_Id="49800"

export DP_Key="394f8762a1232cf5aad40fc2d5c0daaa"

Aliyun解析输入如下:

export Ali_Key="LTAIWphQOhHe1xxx"
export Ali_Secret="diLnYOzeYRi4LZKPBFL6z0DciVcccc"

5、继续输入下边的命令,其实下边两个命令通用。
Dnspod输入如下:
acme.sh --issue --dns dns_dp -d 一级域名 -d *.一级域名
比如:acme.sh --issue --dns dns_dp -d pinbuy.com -d *.pinbuy.com
Aliyun输入如下:
~/.acme.sh/acme.sh --issue --dns dns_ali -d pinbuy.com -d *.pinbuy.com
屏幕指令如下:
[XXX@XXX ~]# acme.sh --issue --dns dns_dp -d pinbuy.com -d *.pinbuy.com
[2018年 03月 30日 星期五 17:25:58 CST] Registering account
[2018年 03月 30日 星期五 17:26:00 CST] Registered
[2018年 03月 30日 星期五 17:26:00 CST] ACCOUNT_THUMBPRINT='MvUC2MLEoXXXXXXR8E1_VbzhsOEXXXXXXRzjiMEU'
[2018年 03月 30日 星期五 17:26:00 CST] Creating domain key
[2018年 03月 30日 星期五 17:26:00 CST] The domain key is here: /XXX/XXX/XXX/XXt/cert/pinbuy.com/pinbuy.com.key
[2018年 03月 30日 星期五 17:26:00 CST] Multi domain='DNS:pinbuy.com,DNS:*.pinbuy.com'
[2018年 03月 30日 星期五 17:26:01 CST] Getting domain auth token for each domain
[2018年 03月 30日 星期五 17:26:02 CST] Getting webroot for domain='pinbuy.com'
[2018年 03月 30日 星期五 17:26:02 CST] Getting webroot for domain='*.pinbuy.com'
[2018年 03月 30日 星期五 17:26:02 CST] Found domain api file: /root/.acme.sh/dnsapi/dns_dp.sh
[2018年 03月 30日 星期五 17:26:03 CST] Adding record
[2018年 03月 30日 星期五 17:26:03 CST] Found domain api file: /root/.acme.sh/dnsapi/dns_dp.sh
[2018年 03月 30日 星期五 17:26:04 CST] Adding record
[2018年 03月 30日 星期五 17:26:04 CST] Sleep 120 seconds for the txt records to take effect
[2018年 03月 30日 星期五 17:28:07 CST] Verifying:pinbuy.com
[2018年 03月 30日 星期五 17:28:10 CST] Success
[2018年 03月 30日 星期五 17:28:10 CST] Verifying:*.pinbuy.com
[2018年 03月 30日 星期五 17:28:13 CST] Success
[2018年 03月 30日 星期五 17:28:13 CST] Removing DNS records.
[2018年 03月 30日 星期五 17:28:16 CST] Verify finished, start to sign.
[2018年 03月 30日 星期五 17:28:18 CST] Cert success.

6、接下来脚本会自动等待 120 秒来验证信息,签发成功后,就会给出 CSR、KEY、CERT 保存的路径/XXX/XXX/XXX/XXXt/cert/pinbuy.com/

[2018年 03月 30日 星期五 17:28:18 CST] Your cert is in /XXX/XXX/XXX/XXXt/cert/pinbuy.com/pinbuy.com.cer
[2018年 03月 30日 星期五 17:28:18 CST] Your cert key is in /XXX/XXX/XXX/XXXt/cert/pinbuy.com/pinbuy.com.key
[2018年 03月 30日 星期五 17:28:18 CST] The intermediate CA cert is in /XXX/XXX/XXX/XXXt/cert/pinbuy.com/ca.cer
[2018年 03月 30日 星期五 17:28:18 CST] And the full chain certs is there: /XXX/XXX/XXX/XXXt/cert/pinbuy.com/fullchain.cer

6证书获取,签发好的CSR、KEY、CERT 都在此路径下:

/XXX/XXX/XXX/XXXt/cert/你的域名/

7安装证书,在执行以下操作之前需要先在宝塔面板里边申请好Let's Encrypt免费证书,然后在后台配置网站信息的时候直接修改配置文件,以nginx为例:

  1. listen 80;
  2. listen 443 ssl;
  3. server_name xxx.com;
  4. index index.html index.htm index.php;
  5. root  /home/wwwroot/PINBUY.COM;
  6. ssl_certificate      /XXX/XXX/XXX/XXXt/cert/pinbuy.com/fullchain.cer;
  7. ssl_certificate_key  /XXX/XXX/XXX/XXXt/cert/pinbuy.com/pinbuy.com.key;

8操作完毕记得重启一下网站nginx。

注意事项

  1. 、在申请签发的过程中脚本会调用 API 自动添加两条 TXT 记录进行验证,在申请成功之后会自动删除这两条记录。2、在得到签发的证书之后,为了域名解析安全,记得在 DNSPod 删除 Token。3、下载 acme.sh 脚本需要在 acme.sh 以及 github.com 拉取文件,所以国内的一些机器可能无法正常运行。4、签发的证书有效期为 3 个月,之后需要重新申请。
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: