SSL证书生成

SSL证书生成

一、前言

本教程使用 acme.sh 来获取,暂只支持 DNS 记录的方式来获取,不支持 Standalone,有任何问题欢迎讨论哦!
普通 DV 证书:一般颁发给单个域名或者多个单域名。
泛域名证书:支持 *.abc.com 旗下所有的域名,仅需这一张证书。

二、准备

需要申请证书的域名需在以下解析商解析(至少需要支持 API 的):

  • CloudFlare
  • DNSPod
  • Aliyun
  • CloudXNS
  • GoDaddy
  • PowerDNS
  • 更多请参考 How to use DNS API

三、申请

本教程以在 Aliyun 解析的 innosail.cn 域名为例,其他解析商可参考 这里 。(PS:不同解析商参数略有不同,注意不要直接照抄)

1. 登陆阿里云获取api信息
Access Key ID   Access Key Secret   状态  创建时间    操作
xxxxx
xxxxxxxxxxx

2. 申请证书

SSH 连接到主机(CentOS)上,首先安装 curl :

# yum install curl socat -y

然后安装 acme.sh:

# curl https://get.acme.sh | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   705  100   705    0     0    358      0  0:00:01  0:00:01 --:--:--   358
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  174k  100  174k    0     0  27260      0  0:00:06  0:00:06 --:--:-- 20927
[2019年 04月 09日 星期二 12:18:02 CST] Installing from online archive.
[2019年 04月 09日 星期二 12:18:02 CST] Downloading https://github.com/Neilpang/acme.sh/archive/master.tar.gz
[2019年 04月 09日 星期二 12:18:05 CST] Extracting master.tar.gz
[2019年 04月 09日 星期二 12:18:05 CST] Installing to /root/.acme.sh
[2019年 04月 09日 星期二 12:18:05 CST] Installed to /root/.acme.sh/acme.sh
[2019年 04月 09日 星期二 12:18:05 CST] Installing alias to '/root/.bashrc'
[2019年 04月 09日 星期二 12:18:05 CST] OK, Close and reopen your terminal to start using acme.sh
[2019年 04月 09日 星期二 12:18:05 CST] Installing alias to '/root/.cshrc'
[2019年 04月 09日 星期二 12:18:05 CST] Installing alias to '/root/.tcshrc'
[2019年 04月 09日 星期二 12:18:05 CST] Installing cron job
[2019年 04月 09日 星期二 12:18:05 CST] Good, bash is found, so change the shebang to use bash as preferred.
[2019年 04月 09日 星期二 12:18:06 CST] OK
[2019年 04月 09日 星期二 12:18:06 CST] Install success!
3. 将 Aliyun API KEY 加入临时系统变量:
export Ali_Key="xxxxxxx"
export Ali_Secret="xxxxxxxxxxxx"
4. 获取证书
# ~/.acme.sh/acme.sh --issue -d innosail.cn -d *.innosail.cn --dns dns_ali --log
[2019年 04月 09日 星期二 16:14:24 CST] Registering account
[2019年 04月 09日 星期二 16:14:28 CST] Registered
[2019年 04月 09日 星期二 16:14:28 CST] ACCOUNT_THUMBPRINT='nGCzQklLtuTWxxxxJxOS1VxxxxxrMWA7Txxxl.cn '_acme-challenge.innosail.cn' success.
[2019年 04月 09日 星期二 16:15:01 CST] All success, let's return
[2019年 04月 09日 星期二 16:15:01 CST] Verifying: innosail.cn
[2019年 04月 09日 星期二 16:15:06 CST] Success
[2019年 04月 09日 星期二 16:15:06 CST] Verifying: *.innosail.cn
[2019年 04月 09日 星期二 16:15:12 CST] Success
[2019年 04月 09日 星期二 16:15:12 CST] Removing DNS records.
[2019年 04月 09日 星期二 16:15:19 CST] Verify finished, start to sign.
[2019年 04月 09日 星期二 16:15:19 CST] Lets finalize the order, Le_OrderFinalize: https://acme-v02.api.letsencrypt.org/acme/finalize/5486229114/3922224691
[2019年 04月 09日 星期二 16:15:22 CST] Download cert, Le_LinkCert: https://acme-v02.api.letsencrypt.org/acme/cert/xxxxxxxxxxx
[2019年 04月 09日 星期二 16:15:23 CST] Cert success.
-----BEGIN CERTIFICATE-----
agAwIBAgISA/yySGs3ABWBAyuAa/3Kb3F2MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MS
ExpMZXQncyBFTz+OBtrhcVNyJIrpM72U7Mn36eHv9bfqGYrk/xMY7J
DJFUqRg0vaiVJwou1iS60RbugR0kOhWzBVSrxIBDjuPR11Mg389uYq
uk67WqzYctRYYsUCPiaD/7qDpUqZ/lFYc7TbetWhRt17uCP2d0z2YZ
LPfeDZcBGALPpz6QGCrPTgPhgkBygyCaQ1mdWUx4Ao3NAY/6x2o6rM
fwfwfwfwfwfwwwwwwwwQ==
-----END CERTIFICATE-----
[2019年 04月 09日 星期二 16:15:23 CST] Your cert is in  /root/.acme.sh/innosail.cn/innosail.cn.cer 
[2019年 04月 09日 星期二 16:15:23 CST] Your cert key is in  /root/.acme.sh/innosail.cn/innosail.cn.key 
[2019年 04月 09日 星期二 16:15:23 CST] The intermediate CA cert is in  /root/.acme.sh/innosail.cn/ca.cer 
[2019年 04月 09日 星期二 16:15:23 CST] And the full chain certs is there:  /root/.acme.sh/innosail.cn/fullchain.cer 

注意事项:第一个 -d 后面不可以直接写*.xx.com,一定要写个普通单域名,第二个 -d 后面可以写泛域名。
签发成功后,请求文件 csr、密钥 key 以及证书 cert 和完整证书链均保存在 /root/.acme.sh/innosail.cn/ 下。

# ll /root/.acme.sh/innosail.cn/
总用量 28
-rw-r--r-- 1 root root 1648 4月   9 16:15 ca.cer
-rw-r--r-- 1 root root 3571 4月   9 16:15 fullchain.cer
-rw-r--r-- 1 root root 1923 4月   9 16:15 innosail.cn.cer
-rw-r--r-- 1 root root  590 4月   9 16:15 innosail.cn.conf
-rw-r--r-- 1 root root  989 4月   9 16:14 innosail.cn.csr
-rw-r--r-- 1 root root  224 4月   9 16:14 innosail.cn.csr.conf
-rw-r--r-- 1 root root 1675 4月   9 16:14 innosail.cn.key

参考地址:https://blog.vircloud.net/operations/free-wildcard-ssl.html

你可能感兴趣的:(SSL证书生成)