ACME-V2 证书签发协议及开发规范
Summary: Author: 张亚飞 | Read Time: 62 minute read | Published: 2019-10-25
Filed under
—
Categories:
ACME
—
Tags:
ACME,
Lets encrypt,
ACME-V2
证书签发协议及开发规范
详解
ACME V2
(RFC 8555) 协议,如何从Let's Encrypt
申请到证书
详解 ACME-V2
签发流程
调试 ACME-V2
协议验证流程及开发规范库
开发验证基本流程
本地生成用户账户私钥(pem编码) -> 创建账户(`/acme/new-acct`) -> 创建订单(`/acme/new-order`) -> 获取订单挑战(`/acme/authz-v3`) -> 创建(DNS-TXT)解析挑战签名 -> 验证订单挑战(`/acme/chall-v3`) -> 删除(DNS-TXT)解析挑战签名 -> 完结订单(`acme/finalize`) -> 获取签发证书(`acme/cert`)
为了方便测试验证,安装 acme.sh
客户端
curl https://get.acme.sh | sh
准备工作
生成 RSA
用户账户私钥
~/Server/Run/run_s/src/libs/acme-client/data/user
$ openssl genrsa -out coam.key 4096
域名 wsw.io
签发 ACME
域名配置
run_s/data/acme/acme.json
"wsw.io": {
"acme_name": "wsw.io",
"acme_wildcards": [
"wsw.io",
"*.wsw.io",
"*.docker.wsw.io"
]
}
清除域名 wsw.io
遗留 _acme-challenge.*
解析记录
~/Server/Run/run_s
$ cargo run dns sync -i wsw.io
检查本地已签发证书是否有效
~/Server/Run/run_s/data/acme/cert_list/wsw.io
$ ls
ca.crt domain.csr domain.pem fullchain.crt private.key rootchain.pem
$ openssl x509 -text -in domain.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
04:84:6c:c9:08:46:81:4f:11:6a:e9:65:35:00:ba:0f:94:ea
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
Validity
Not Before: Jul 30 01:53:43 2019 GMT
Not After : Oct 28 01:53:43 2019 GMT
Subject: CN = wsw.io
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:e2:f4:c6:d6:0b:95:1f:0b:79:98:fe:a5:6f:3b:
30:3f:05:9b:8d:62:3a:41:e5:49:9b:44:fd:fd:a0:
bc:45:b0:07:18:6e:3f:ff:da:61:a2:4b:a4:c0:fe:
0a:2b:b5:2b:74:ec:d5:2e:9d:14:9c:0d:2e:e6:ef:
1a:32:14:4d:79:db:5f:b3:f9:27:27:13:5b:17:7f:
a5:7a:6f:46:df:56:3c:83:b4:4c:5e:10:37:26:61:
67:af:05:0f:bf:8e:57:79:e0:f4:81:f4:2c:25:0a:
a3:1b:bb:74:21:1f:a3:ae:88:e4:1b:f9:ce:ec:f3:
ca:eb:cc:01:f5:77:22:e2:55:ed:d7:10:c9:26:b5:
97:87:b1:e8:c4:fc:1a:cc:f2:d8:96:e9:ef:72:6a:
71:26:37:75:68:46:99:4a:fb:3e:ab:55:3a:96:7f:
5d:26:7b:3d:eb:a5:0d:1e:f9:e0:99:86:14:62:d3:
d0:7d:70:e8:f1:c7:fe:d2:34:0e:4c:0b:87:c8:76:
2f:32:c7:23:19:32:d5:c4:ad:d1:c4:45:22:02:9e:
c2:82:5b:85:9f:48:0f:0a:bc:c6:46:41:94:09:e9:
b6:eb:bc:12:9b:dc:bf:53:2e:d1:b4:b4:59:4e:5b:
16:3d:17:ae:9f:a4:a2:b9:45:3a:8c:64:1c:1f:3d:
69:71
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
6C:88:39:BE:48:4F:0B:CD:97:33:0A:00:73:98:95:02:EE:83:F1:A5
X509v3 Authority Key Identifier:
keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1
Authority Information Access:
OCSP - URI:http://ocsp.int-x3.letsencrypt.org
CA Issuers - URI:http://cert.int-x3.letsencrypt.org/
X509v3 Subject Alternative Name:
DNS:*.wsw.io, DNS:wsw.io
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.1
Policy: 1.3.6.1.4.1.44947.1.1.1
CPS: http://cps.letsencrypt.org
CT Precertificate SCTs:
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : E2:69:4B:AE:26:E8:E9:40:09:E8:86:1B:B6:3B:83:D4:
3E:E7:FE:74:88:FB:A4:8F:28:93:01:9D:DD:F1:DB:FE
Timestamp : Jul 30 02:53:43.054 2019 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:94:0D:D8:35:98:A9:7B:D1:95:FD:5F:
FB:14:F3:02:35:D4:2A:57:64:98:ED:6C:C9:CA:F3:E8:
A1:C3:4D:EE:2C:02:21:00:BB:B8:28:ED:A8:64:0B:42:
C5:76:4D:4E:A1:F2:BA:48:94:5A:51:D5:99:24:3A:A7:
77:02:FE:27:2F:9E:A3:C7
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 63:F2:DB:CD:E8:3B:CC:2C:CF:0B:72:84:27:57:6B:33:
A4:8D:61:77:8F:BD:75:A6:38:B1:C7:68:54:4B:D8:8D
Timestamp : Jul 30 02:53:43.041 2019 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:B1:18:9E:2C:DC:1C:1B:DA:40:46:D2:
CA:53:4D:21:D6:EE:A2:CD:8C:8C:6B:8A:1B:E9:10:4D:
A2:A5:DD:FF:5A:02:21:00:B5:4C:42:99:70:E9:10:F8:
57:34:EE:3B:18:B6:BE:35:23:D1:25:B6:76:16:26:60:
55:11:4E:FD:CC:FB:7E:E6
Signature Algorithm: sha256WithRSAEncryption
11:78:48:85:f0:5c:d5:5a:f9:8d:88:f9:2d:fc:6a:da:38:3a:
c6:83:fa:9a:ce:91:1e:94:ce:d9:a5:76:71:2c:4e:bb:80:55:
e1:df:5e:4e:19:22:25:ad:14:02:12:e0:ad:99:02:d2:32:c8:
94:5a:2f:d8:5f:f7:b2:5f:7b:02:ac:05:f8:ea:80:45:a6:a4:
97:e8:19:26:8a:66:aa:e0:e8:5b:55:cb:2a:ea:71:01:43:03:
61:0d:47:e2:f6:67:b3:09:80:0a:b9:69:62:b8:89:40:bb:37:
46:c6:54:6b:fd:fc:12:11:82:b6:d5:15:59:35:a9:83:49:4e:
50:b7:82:57:88:02:0e:7f:a2:c0:d0:14:94:e9:f2:eb:49:fe:
cb:76:64:59:9c:d2:fb:8d:e4:d0:ab:16:e3:eb:64:50:d4:db:
09:2e:cd:48:b2:e1:dd:ef:9f:b3:d5:b6:1b:18:62:0f:86:8b:
d7:e5:8c:73:69:f3:41:2f:cf:f0:b4:23:84:2a:cf:74:a2:73:
dd:8f:c0:93:40:bd:a8:47:36:86:64:60:4d:03:65:a3:4f:61:
68:cb:8b:6c:e3:10:a9:31:02:ad:29:f8:4b:72:60:a7:6a:90:
a4:57:c1:14:f2:10:a2:f8:d4:63:cc:9b:c6:81:b3:84:8d:89:
d5:15:59:8b
-----BEGIN CERTIFICATE-----
MIIFUDCCBDigAwIBAgISBIRsyQhGgU8RaullNQC6D5TqMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTA3MzAwMTUzNDNaFw0x
OTEwMjgwMTUzNDNaMBExDzANBgNVBAMTBndzdy5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAOL0xtYLlR8LeZj+pW87MD8Fm41iOkHlSZtE/f2gvEWw
BxhuP//aYaJLpMD+Ciu1K3Ts1S6dFJwNLubvGjIUTXnbX7P5JycTWxd/pXpvRt9W
PIO0TF4QNyZhZ68FD7+OV3ng9IH0LCUKoxu7dCEfo66I5Bv5zuzzyuvMAfV3IuJV
7dcQySa1l4ex6MT8Gszy2Jbp73JqcSY3dWhGmUr7PqtVOpZ/XSZ7PeulDR754JmG
FGLT0H1w6PHH/tI0DkwLh8h2LzLHIxky1cSt0cRFIgKewoJbhZ9IDwq8xkZBlAnp
tuu8Epvcv1Mu0bS0WU5bFj0Xrp+korlFOoxkHB89aXECAwEAAaOCAmcwggJjMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD
VR0TAQH/BAIwADAdBgNVHQ4EFgQUbIg5vkhPC82XMwoAc5iVAu6D8aUwHwYDVR0j
BBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBhMC4GCCsG
AQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3JnMC8GCCsG
AQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzAbBgNV
HREEFDASgggqLndzdy5pb4IGd3N3LmlvMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcG
CysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5
cHQub3JnMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcA4mlLribo6UAJ6IYbtjuD
1D7n/nSI+6SPKJMBnd3x2/4AAAFsQMw/DgAABAMASDBGAiEAlA3YNZipe9GV/V/7
FPMCNdQqV2SY7WzJyvPoocNN7iwCIQC7uCjtqGQLQsV2TU6h8rpIlFpR1ZkkOqd3
Av4nL56jxwB3AGPy283oO8wszwtyhCdXazOkjWF3j711pjixx2hUS9iNAAABbEDM
PwEAAAQDAEgwRgIhALEYnizcHBvaQEbSylNNIdbuos2MjGuKG+kQTaKl3f9aAiEA
tUxCmXDpEPhXNO47GLa+NSPRJbZ2FiZgVRFO/cz7fuYwDQYJKoZIhvcNAQELBQAD
ggEBABF4SIXwXNVa+Y2I+S38ato4OsaD+prOkR6UztmldnEsTruAVeHfXk4ZIiWt
FAIS4K2ZAtIyyJRaL9hf97JfewKsBfjqgEWmpJfoGSaKZqrg6FtVyyrqcQFDA2EN
R+L2Z7MJgAq5aWK4iUC7N0bGVGv9/BIRgrbVFVk1qYNJTlC3gleIAg5/osDQFJTp
8utJ/st2ZFmc0vuN5NCrFuPrZFDU2wkuzUiy4d3vn7PVthsYYg+Gi9fljHNp80Ev
z/C0I4Qqz3Sic92PwJNAvahHNoZkYE0DZaNPYWjLi2zjEKkxAq0p+EtyYKdqkKRX
wRTyEKL41GPMm8aBs4SNidUVWYs=
-----END CERTIFICATE-----
查看证书过期时间
~/Server/Run/run_s/data/acme/cert_list/wsw.io
$ openssl x509 -enddate -noout -in domain.pem
notAfter=Oct 28 01:53:43 2019 GMT
查看 pem
证书是否会在24小时内过期
$ openssl x509 -checkend 86400 -noout -in domain.pem
Certificate will not expire
签发 DNS
泛域名证书
第一步: 获取 ACME
目录
ACME
客户端通过 GET
请求 https://acme-v02.api.letsencrypt.org/directory
接口
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/directory", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:44 GMT", "content-type": "application/json", "content-length": "658", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"F5tQlwVaqmg": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417",
"keyChange": "https://acme-v02.api.letsencrypt.org/acme/key-change",
"meta": {
"caaIdentities": [
"letsencrypt.org"
],
"termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf",
"website": "https://letsencrypt.org"
},
"newAccount": "https://acme-v02.api.letsencrypt.org/acme/new-acct",
"newNonce": "https://acme-v02.api.letsencrypt.org/acme/new-nonce",
"newOrder": "https://acme-v02.api.letsencrypt.org/acme/new-order",
"revokeCert": "https://acme-v02.api.letsencrypt.org/acme/revoke-cert"
}
其中
newAccount
字段是用于上传account key
时候调用newNonce
是业务流程(如申请、撤销) 时候需要预请求获取一次性令牌的一个接口newOrder
是用于下单的接口revokeCert
是用于撤销证书的接口keyChange
是用于更换KeyPair
的接口hB5pQoXIhOg
是特殊的随机的字段,可能随意的出现在json
的头、中、尾部,作用是为了避免开发者集成客户端时候[1],采用 定位法取json
的数据,导致扩展性变差而引入的属性.
第二步: 注册 ACME
账户
https://acme-v02.api.letsencrypt.org/acme/new-acct
我们在创建账户时,如果你使用 acme.sh
工具会自动平滑请求 new account
接口,需要执行如下命令:
$ ~/.acme.sh/acme.sh --register-account --accountemail zyf@lonal.com
[Sun Oct 13 19:53:43 CST 2019] Registering account
[Sun Oct 13 19:53:46 CST 2019] Registered
[Sun Oct 13 19:53:46 CST 2019] ACCOUNT_THUMBPRINT='iERqap12QVE3j83ZEJaQosnFhyFZqBs9ElQeeNTQEdE'
通过网络抓包, 我们可以观察到, 除了 /directory
接口外, 其依次调用了如下接口
/acme/new-nonce
/acme/new-acct
手动调用 /acme/new-nonce
接口
http -v HEAD https://acme-v02.api.letsencrypt.org/acme/new-nonce Content-Type:application/jose+json
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:45 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
需要特别注意, 此请求是 HEAD
, 而不是 GET
.其中 Replay-Nonce
必须提供, Content-Length
必须为 0, 否则客户端会异常.
原始接口参数信息
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q")]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-acct]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"termsOfServiceAgreed":true,"contact":["mailto: zyf@iirii.com"],"email":"admin@iirii.com"}]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"alg": String("RS256"), "nonce": String("0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q"), "jwk": Object({"e": String("AQAB"), "kty": String("RSA"), "n": String("5H15UqCfXJJwkuX-vsMB9mV0QHcsYOLDcexJZpEkXmzFHOIDiKBoJzVxmoK9XK4plR3SLvNczkDTKsYdegd6jyO5xW-CHFkviJMXr30_5IYkjVpXakJJumblcTo5owzNRMTuylqewVB29I92GmDPGLsyAmUi8bmeYRa381omMi5SBFModRPamiYxeQG_HsyOalZbeoZfCoT6CnxeJWevxIqV8MvCS9qwfrdqnNFw1uihKIlaijaMvKZ42-8z6iZ7zT2G65wt5_GXKi0eE90xVX6d0zaD6NmWeAGbKYPu6F9rfxaMfQgP_S-iTq1BTM2gBIPa_VzMNRIeOK3VKGqs60lDF700TIWgzvnPgs3QdAcHgouehPZe0xfOWg_J7_sv-yz0ZI9srfnibjU_gcc3xsdHxCvCzSONLjiz9cT6-QkTNVziN1QeC3SALBZkxoJ1UoRkE9okrjlVBXITlBJ-YIxUGJlMQX5xEbExr7w5n7GG1bBbOCClmpCzcXRY2ZIMqKB82ZaRmF6dMJAbmQCaTQ0VheIAu3N_3K-hR-76Mu7iDqdTKrTHRL5sQ7ZWyFLXNq7wSjnkP0pjbovAVfwW4HmQXVeIM8SR7g4foRz4Zr15cOVHSmLPxWHVmYZ9R9LWv6PIK8bg6ChuaksWtzUMJFtHOdnqHp98fA8LbdvBowc")}), "url": String("https://acme-v02.api.letsencrypt.org/acme/new-acct")}]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: y3OkcPv2UlUs1sJBTOyh_rKHjQv1dSjxLzgmUSnrDl8eDMUQ-i_u4PW1NFX9iQtb2BOyvjkob7Eh7spRw1k1GKddaLSf9pbV_y7MM0GhY5i86LwXbqP7ZPt5JgUF58Mbw4NQVb5uzVWDiBvqv9gBGC_gTcyp45vQYofvId7WjyniBjvlk6bAIYv9Vg0tLySDsaqrkcIYhi-kMuDjzVZtwlN6bb2ZCxIsUNvC9QtrDV9Cu_b6ingbyJoxOwQz3yWtKIBxDRACeVqzeb2oqG8Awigw_fP_M2ESlBUMefp-Dpc9MySLoecxyXW5EFnf7gLbEdP_KpGvL-pyGkFwNfWEvFShKHz3NHmpR3L31R_olZWE3-5_ie5acOe7JP1t48dByQsyJLEWR6jrTLSEsX7XkCdGFdOgHG2ccIZCl8qfk_i1fUhCFb7LuoDi8lGmp-2NF-JG84sRF7welP0txHTc9HyXCeIo4y24-quyd__oXKllZPMPK9HDLzYaLC9Jv521DwEu4UZgILIS_T0q2nQfI-ZDqkPHs2n-XUjFT_EMzWCFrPuAAeFNhmGZt_jESe4D0l3AyVGk-S5ulSWJW7IY6oQLRJct1AIErbhu7SfHCi8sUDQGX3eokL68PsL7NJzggYu_CHBv_IrHgGngVHSNN1nSqClFzxs-8mMWB6smx7Q]
ACME 请求参数
{
"protected": "eyJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMDEwMmpETnJQNVNSQ2M2ckpmdlFmMjhhb3BNR3Z0ZU5KRnlXaXVrVV9welU1LVEiLCJqd2siOnsiZSI6IkFRQUIiLCJrdHkiOiJSU0EiLCJuIjoiNUgxNVVxQ2ZYSkp3a3VYLXZzTUI5bVYwUUhjc1lPTERjZXhKWnBFa1htekZIT0lEaUtCb0p6Vnhtb0s5WEs0cGxSM1NMdk5jemtEVEtzWWRlZ2Q2anlPNXhXLUNIRmt2aUpNWHIzMF81SVlralZwWGFrSkp1bWJsY1RvNW93ek5STVR1eWxxZXdWQjI5STkyR21EUEdMc3lBbVVpOGJtZVlSYTM4MW9tTWk1U0JGTW9kUlBhbWlZeGVRR19Ic3lPYWxaYmVvWmZDb1Q2Q254ZUpXZXZ4SXFWOE12Q1M5cXdmcmRxbk5GdzF1aWhLSWxhaWphTXZLWjQyLTh6NmlaN3pUMkc2NXd0NV9HWEtpMGVFOTB4Vlg2ZDB6YUQ2Tm1XZUFHYktZUHU2RjlyZnhhTWZRZ1BfUy1pVHExQlRNMmdCSVBhX1Z6TU5SSWVPSzNWS0dxczYwbERGNzAwVElXZ3p2blBnczNRZEFjSGdvdWVoUFplMHhmT1dnX0o3X3N2LXl6MFpJOXNyZm5pYmpVX2djYzN4c2RIeEN2Q3pTT05Maml6OWNUNi1Ra1ROVnppTjFRZUMzU0FMQlpreG9KMVVvUmtFOW9rcmpsVkJYSVRsQkotWUl4VUdKbE1RWDV4RWJFeHI3dzVuN0dHMWJCYk9DQ2xtcEN6Y1hSWTJaSU1xS0I4MlphUm1GNmRNSkFibVFDYVRRMFZoZUlBdTNOXzNLLWhSLTc2TXU3aURxZFRLclRIUkw1c1E3Wld5RkxYTnE3d1NqbmtQMHBqYm92QVZmd1c0SG1RWFZlSU04U1I3ZzRmb1J6NFpyMTVjT1ZIU21MUHhXSFZtWVo5UjlMV3Y2UElLOGJnNkNodWFrc1d0elVNSkZ0SE9kbnFIcDk4ZkE4TGJkdkJvd2MifSwidXJsIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvbmV3LWFjY3QifQ",
"signature": "y3OkcPv2UlUs1sJBTOyh_rKHjQv1dSjxLzgmUSnrDl8eDMUQ-i_u4PW1NFX9iQtb2BOyvjkob7Eh7spRw1k1GKddaLSf9pbV_y7MM0GhY5i86LwXbqP7ZPt5JgUF58Mbw4NQVb5uzVWDiBvqv9gBGC_gTcyp45vQYofvId7WjyniBjvlk6bAIYv9Vg0tLySDsaqrkcIYhi-kMuDjzVZtwlN6bb2ZCxIsUNvC9QtrDV9Cu_b6ingbyJoxOwQz3yWtKIBxDRACeVqzeb2oqG8Awigw_fP_M2ESlBUMefp-Dpc9MySLoecxyXW5EFnf7gLbEdP_KpGvL-pyGkFwNfWEvFShKHz3NHmpR3L31R_olZWE3-5_ie5acOe7JP1t48dByQsyJLEWR6jrTLSEsX7XkCdGFdOgHG2ccIZCl8qfk_i1fUhCFb7LuoDi8lGmp-2NF-JG84sRF7welP0txHTc9HyXCeIo4y24-quyd__oXKllZPMPK9HDLzYaLC9Jv521DwEu4UZgILIS_T0q2nQfI-ZDqkPHs2n-XUjFT_EMzWCFrPuAAeFNhmGZt_jESe4D0l3AyVGk-S5ulSWJW7IY6oQLRJct1AIErbhu7SfHCi8sUDQGX3eokL68PsL7NJzggYu_CHBv_IrHgGngVHSNN1nSqClFzxs-8mMWB6smx7Q",
"payload": "eyJ0ZXJtc09mU2VydmljZUFncmVlZCI6dHJ1ZSwiY29udGFjdCI6WyJtYWlsdG86IHp5ZkBpaXJpaS5jb20iXSwiZW1haWwiOiJhZG1pbkBpaXJpaS5jb20ifQ"
}
此处 protected
字段 base64_decode
还原后即为
{
"alg": "RS256",
"nonce": "0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q",
"jwk": {
"e": "AQAB",
"kty": "RSA",
"n": "5H15UqCfXJJwkuX-vsMB9mV0QHcsYOLDcexJZpEkXmzFHOIDiKBoJzVxmoK9XK4plR3SLvNczkDTKsYdegd6jyO5xW-CHFkviJMXr30_5IYkjVpXakJJumblcTo5owzNRMTuylqewVB29I92GmDPGLsyAmUi8bmeYRa381omMi5SBFModRPamiYxeQG_HsyOalZbeoZfCoT6CnxeJWevxIqV8MvCS9qwfrdqnNFw1uihKIlaijaMvKZ42-8z6iZ7zT2G65wt5_GXKi0eE90xVX6d0zaD6NmWeAGbKYPu6F9rfxaMfQgP_S-iTq1BTM2gBIPa_VzMNRIeOK3VKGqs60lDF700TIWgzvnPgs3QdAcHgouehPZe0xfOWg_J7_sv-yz0ZI9srfnibjU_gcc3xsdHxCvCzSONLjiz9cT6-QkTNVziN1QeC3SALBZkxoJ1UoRkE9okrjlVBXITlBJ-YIxUGJlMQX5xEbExr7w5n7GG1bBbOCClmpCzcXRY2ZIMqKB82ZaRmF6dMJAbmQCaTQ0VheIAu3N_3K-hR-76Mu7iDqdTKrTHRL5sQ7ZWyFLXNq7wSjnkP0pjbovAVfwW4HmQXVeIM8SR7g4foRz4Zr15cOVHSmLPxWHVmYZ9R9LWv6PIK8bg6ChuaksWtzUMJFtHOdnqHp98fA8LbdvBowc"
},
"url": "https://acme-v02.api.letsencrypt.org/acme/new-acct"
}
其中
nonce
为上面/acme/new-nonce
所返回的值.url
为本接口地址alg
为签名算法jwk
为账户公钥数据kty
[2] 是key
type
的意思e
和n
、kty
可以确定一份公钥[3]
在 POST
参数中的 payload
还原后可得
{
"termsOfServiceAgreed": true,
"contact": [
"mailto: zyf@iirii.com"
],
"email": "admin@iirii.com"
}
由此, protected
, payload
和 signature
一起请求给 https://acme-v02.api.letsencrypt.org/acme/new-acct
, 服务器存储好公钥与邮箱后, 即返回
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-acct", status: 200, headers: {"server": "nginx", "date": "Thu, 24 Oct 2019 13:38:42 GMT", "content-type": "application/json", "content-length": "887", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/acct/62364548", "replay-nonce": "0001oYdYtAIPS7pdzF0X8AU_vZpRYtx8nQBkBb84Jwmy_5I", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"key": {
"kty": "RSA",
"n": "5H15UqCfXJJwkuX-vsMB9mV0QHcsYOLDcexJZpEkXmzFHOIDiKBoJzVxmoK9XK4plR3SLvNczkDTKsYdegd6jyO5xW-CHFkviJMXr30_5IYkjVpXakJJumblcTo5owzNRMTuylqewVB29I92GmDPGLsyAmUi8bmeYRa381omMi5SBFModRPamiYxeQG_HsyOalZbeoZfCoT6CnxeJWevxIqV8MvCS9qwfrdqnNFw1uihKIlaijaMvKZ42-8z6iZ7zT2G65wt5_GXKi0eE90xVX6d0zaD6NmWeAGbKYPu6F9rfxaMfQgP_S-iTq1BTM2gBIPa_VzMNRIeOK3VKGqs60lDF700TIWgzvnPgs3QdAcHgouehPZe0xfOWg_J7_sv-yz0ZI9srfnibjU_gcc3xsdHxCvCzSONLjiz9cT6-QkTNVziN1QeC3SALBZkxoJ1UoRkE9okrjlVBXITlBJ-YIxUGJlMQX5xEbExr7w5n7GG1bBbOCClmpCzcXRY2ZIMqKB82ZaRmF6dMJAbmQCaTQ0VheIAu3N_3K-hR-76Mu7iDqdTKrTHRL5sQ7ZWyFLXNq7wSjnkP0pjbovAVfwW4HmQXVeIM8SR7g4foRz4Zr15cOVHSmLPxWHVmYZ9R9LWv6PIK8bg6ChuaksWtzUMJFtHOdnqHp98fA8LbdvBowc",
"e": "AQAB"
},
"contact": [
"mailto: zyf@iirii.com"
],
"initialIp": "47.244.154.194",
"createdAt": "2019-07-30T02:35:17Z",
"status": "valid"
}
账户唯一链接凭证接口 https://acme-v02.api.letsencrypt.org/acme/acct/62364548
.至此, 账户创建即完成.
第三步: 创建订单
账户创建完了,下一步通过泛域名创建订单
原始接口参数信息
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0002EYct0CLH8kMNzdwN-yfPlcdGiOTxOKZpME5reYk0yIM")]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-order]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"identifiers":[{"type":"dns","value":"wsw.io"},{"type":"dns","value":"*.wsw.io"},{"type":"dns","value":"*.docker.wsw.io"}]}]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"alg": String("RS256"), "url": String("https://acme-v02.api.letsencrypt.org/acme/new-order"), "nonce": String("0002EYct0CLH8kMNzdwN-yfPlcdGiOTxOKZpME5reYk0yIM"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")}]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: GejsD_aCmjQOT5b4qanCRrYMyGERa_6gfqCqj6ESXPzUnuN2TQIiDdYXwRoaPp3rWdE2mP4CSdJjrtyScIEIKbSt7n23X9Rr0qgLRtx3SxSeHrZX46O2IAN2mMq1wi_remYuBUc41-fDhlOSt1dhVaBruOd_e02RXKFuXWlwt3n9nEsDuWstWXh0a6sf6mUEU2uSwfc_RDclw3ArxmpwBe4T6yIX2HDLpopMVRrv-qwS8aCGzVxkRP2dIzWutphqorda3l9nqUjOII9y9yP8bbbQ65Hia1OCE4mluFILrB04N_CMfA3xh2mi8RYE6pECQFa7RyvOGXcILUe4-FVqZsQ6sfAwRKTmTa8hOu-ClMzlOLcH-v_g-bPudatUcCbc-VEDkHhusXoSgD66twNqvTWJEinnz-qq941I5dBfPypYavHO2yTaosoi89Z35Aa9YPjCNjG1j6_meQbRF1xR9LIF8UeBnEJgfU1I9z8mXg4JwcCxW4Aq6_nGOoxneavDpFKNJppAciam0bwryifC15-QrxWR_G34u4yr1JXaCvOyVqkP30vgumTKUAGM0pbVGS4iE_PCcXWlYgsZIF_GZEW6ygqk6F6gP49O8spF8GmEgi6ph_AkDvtpkGU5pEx3tKYrchWGwbn3_CDROeklWMIFbBhy5Zoc0IQ6WgqwbB4]
ACME 请求参数
{
"payload": "eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoid3N3LmlvIn0seyJ0eXBlIjoiZG5zIiwidmFsdWUiOiIqLndzdy5pbyJ9LHsidHlwZSI6ImRucyIsInZhbHVlIjoiKi5kb2NrZXIud3N3LmlvIn1dfQ",
"protected": "eyJhbGciOiJSUzI1NiIsInVybCI6Imh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1vcmRlciIsIm5vbmNlIjoiMDAwMkVZY3QwQ0xIOGtNTnpkd04teWZQbGNkR2lPVHhPS1pwTUU1cmVZazB5SU0iLCJraWQiOiJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hY2N0LzYyMzY0NTQ4In0",
"signature": "GejsD_aCmjQOT5b4qanCRrYMyGERa_6gfqCqj6ESXPzUnuN2TQIiDdYXwRoaPp3rWdE2mP4CSdJjrtyScIEIKbSt7n23X9Rr0qgLRtx3SxSeHrZX46O2IAN2mMq1wi_remYuBUc41-fDhlOSt1dhVaBruOd_e02RXKFuXWlwt3n9nEsDuWstWXh0a6sf6mUEU2uSwfc_RDclw3ArxmpwBe4T6yIX2HDLpopMVRrv-qwS8aCGzVxkRP2dIzWutphqorda3l9nqUjOII9y9yP8bbbQ65Hia1OCE4mluFILrB04N_CMfA3xh2mi8RYE6pECQFa7RyvOGXcILUe4-FVqZsQ6sfAwRKTmTa8hOu-ClMzlOLcH-v_g-bPudatUcCbc-VEDkHhusXoSgD66twNqvTWJEinnz-qq941I5dBfPypYavHO2yTaosoi89Z35Aa9YPjCNjG1j6_meQbRF1xR9LIF8UeBnEJgfU1I9z8mXg4JwcCxW4Aq6_nGOoxneavDpFKNJppAciam0bwryifC15-QrxWR_G34u4yr1JXaCvOyVqkP30vgumTKUAGM0pbVGS4iE_PCcXWlYgsZIF_GZEW6ygqk6F6gP49O8spF8GmEgi6ph_AkDvtpkGU5pEx3tKYrchWGwbn3_CDROeklWMIFbBhy5Zoc0IQ6WgqwbB4"
}
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-order", status: 201, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:47 GMT", "content-type": "application/json", "content-length": "598", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/order/62364548/1358562732", "replay-nonce": "0002ZprvP76S-ECQrLUkK-fgjo_KHAZ7ny6Btlk6TU7Ct-I", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"status": "pending",
"expires": "2019-11-01T03:03:47.913429056Z",
"identifiers": [
{
"type": "dns",
"value": "*.docker.wsw.io"
},
{
"type": "dns",
"value": "*.wsw.io"
},
{
"type": "dns",
"value": "wsw.io"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732"
}
可以看到订单状态为 pending
,因为我这里接口请求签发三个泛域名: wsw.io
*.wsw.io
和 *.docker.wsw.io
.所以订单返回三个授权挑战(authorizations):
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769
订单几个状态及流程:
pending->valid->ready
pending->invalid
下面根据授权接口依次获取挑战
[获取 ACME 订单验证挑战方案] -> [authorization: “https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767”]
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:48 GMT", "content-type": "application/json", "content-length": "384", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"identifier": {
"type": "dns",
"value": "docker.wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"
}
],
"wildcard": true
}
[获取 ACME 订单验证挑战方案] -> [authorization: “https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768”]
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:49 GMT", "content-type": "application/json", "content-length": "377", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"identifier": {
"type": "dns",
"value": "wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww",
"token": "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws"
}
],
"wildcard": true
}
[获取 ACME 订单验证挑战方案] -> [authorization: “https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769”]
https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:50 GMT", "content-type": "application/json", "content-length": "781", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"identifier": {
"type": "dns",
"value": "wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "http-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
},
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
},
{
"type": "tls-alpn-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
}
]
}
可以看到,每一个授权接口都包含几个挑战,包括 http-01
dns-01
和 tls-alpn-01
,但都至少包含 dns-01
, 我们只用挑选类型为 dns-01
的挑战即可.
第四步: 对每一个挑战获取 DNS
解析验证签名
docker.wsw.io
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: docker.wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]
wsw.io
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
wsw.io
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
由于 *.wsw.io
和 *.wsw.io
都是一级域名,所以挑战前缀是一样的,整理下最终 DNS
的 TXT
挑战解析签名验证是这样的:
解析类型 | 解析名 | 解析值 |
---|---|---|
TXT | _acme-challenge.docker | F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs |
TXT | _acme-challenge | Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A |
TXT | _acme-challenge | -0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4 |
第五步: 设置 DNS
解析
// TODO...
// wait a moment
第六步: 验证 DNS
解析
nslookup -q=txt _acme-challenge.wsw.io. 8.8.8.8
nslookup -q=txt _acme-challenge.wsw.io. 8.8.8.8
nslookup -q=txt _acme-challenge.docker.wsw.io. 8.8.8.8
第七步: 向 ACME
发起挑战
解析完 TXT
稍等片刻后,可以开始向 ACME
发起挑战验证了
原始接口参数信息
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0001_RB5QdS8KrZBfcqMJG3GqkvXQK1Wya8X1g_O6yJIvlw")]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"keyAuthorization":"F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"}]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548"), "alg": String("RS256"), "nonce": String("0001_RB5QdS8KrZBfcqMJG3GqkvXQK1Wya8X1g_O6yJIvlw"), "url": String("https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw")}]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: CJom2H22YWqPsLineKGc66aK4nmGLWCUB8nP0XaAWDv6hOwJwLehu8UasQAHeu2ERAnDSpqE0U_FA8X4-W2fds4xWyi0tIHz_D6ArT-t_sqBqaZsFAD32WGpJiRWJX3CCbloHdg8jAhH6WZIteIVxu3kvf6SkNhule-oH2tKElL8lnNYBMS3tBUtLUBEO0J30-gGZW6AQ_4grKeOhAVnEl3F02-Vrs0Vu4qd_hkyZDqugN03Cdzk0ZurIvqSHxdChkbz6lljcjBc6oIUuKpaiuuFPqXU5QKX5OK7qGF5g8N-gsJXlsfEpgFxYaLsTa5UmlywnGRkm8sttFU5OYMnJVsfTAwfJyb7Hz8fu8OoPdArS7TH2vTvbSX-l2L00N7nw0LEI1-ohnH6IlsnQKyN4MW5RbJ02C3cIH6FqmETBxJQU7IWoUhAoSNLhSdNfQNHszw9hGsELMJ6_Re-CXnHalHUzgLEfDUew5msdBApq-o0jKJ9z-3SIqXHl0KoMvHQFmImkpp4geb7AuslGoRBYRKqqTzBsm7WkxKixySOIfPd0CLTXsm7_kzkeKQZYyukPqBKG20wjM19_8trGqvbhGZtESY_FLctrn21uXDnOflz--a-P6jAQe81uhPb6eqbLx1FpTiRVTw4u4mcRVmsfsYJvm0jyRltfN08QXWKMtk]
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:06 GMT", "content-type": "application/json", "content-length": "183", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", "replay-nonce": "01015_Sfin1rJ9z1u02rNxwnLbUIU0JF9DWYg_Ac1_jkjpo", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"
}
可以看到状态仍然是 pending
状态还未更新,等 2 秒后再次重复发起挑战验证.
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:10 GMT", "content-type": "application/json", "content-length": "256", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"type": "dns-01",
"status": "valid",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU",
"validationRecord": [
{
"hostname": "docker.wsw.io"
}
]
}
依次类推,发起挑战验证,等待所有三个挑战全部变为 valid
状态为止.
第八步: 删除 TXT
签名解析验证记录
待所有挑战验证状态变为 valid
的状态时,该泛子域名已验证通过,不在需要 DNS
解析了,所有可以删除相关 TXT
挑战解析了
第九步: 完结订单,获取证书签发链接
https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732
原始接口参数信息
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0102tjrbII5vW5Yj0mIcPfEkjVq_GtsJgX8yx-YHcBogyb4")]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"csr":"MIIClTCCAX0CAQAwETEPMA0GA1UEAwwGd3N3LmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1qy-s2Gyxkn-mlrjpJroQ3-tEZ0FSSK39hYHp20Q2t2mSPMrGrglOryiW93tHp6KFPoWCgh8TwKNfGNQ_83aGHvaVPgCgpFNs089EfJF7G-FHrL7VOXf6mj7yrxAhYkQiZwS23SGyRSE3Tp7t2S76jksg-i8QDfhthEZrxWcPBctKh-M509b1uiQKQ85it13pebbIYwZLRJBu7EvkfAfMRGBmFzd-CdtPKcDK1Elh4qGHhIdXKdid-qsGoM5BemacajAqWbGZqwKuxfrTspw8mmbQnYo97JHAhpI4tvjIG1QUzJ2KNRg1e4MmCiAKIwE9VjYayg9j0Zr8l_LeH1-_wIDAQABoD8wPQYJKoZIhvcNAQkOMTAwLjAsBgNVHREEJTAjggZ3c3cuaW-CCCoud3N3Lmlvgg8qLmRvY2tlci53c3cuaW8wDQYJKoZIhvcNAQELBQADggEBALdIGuPw96PlcPHIKl_b-38tmHpKgxqUok0zkt_hzIyKcEDUvk92JcbHzDdnI6UmPIdijKYr6ZscQPtErFGbntzLKZ-v2A_B4gFKVLQU8H2qb3FUQzBVDuOLjnMwzI3Mj6xWGTAvRh3I07Pa6SoC_Ckw_yGoZTcE-O1op7ci1JGngpfdVvulLKfZvtafu9YqD8bJzTD2O6_XKMaJ8yglPkLvv7sz_bnxe-vDlsOoTErp-N1nG-olRUCosCPATq1lzHAenJlGhdR6L0BiFcW3SdHntcj3KXFznCXCEiCFBlzMBieKukLmBLko7JnssQIaGw9yaqRCkev3LfELUQ4LNyI"}]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"url": String("https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732"), "alg": String("RS256"), "nonce": String("0102tjrbII5vW5Yj0mIcPfEkjVq_GtsJgX8yx-YHcBogyb4"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")}]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: NRlIx37BdqBKRg-j9K9XiXr2bsb6w-qGOIevnXGXWnucB1rl4gaPDaz1IoGADYUX4wSzeJJhzeB29Z36K91U9fKFDFhA0CAKhFMUpmN2qyY151NAsyYKexdRU6Qmi3EcczCcN9R0ImT5ugpnhXD_3_PbNAYIh196N1FE7OouwvMcPV8Gx16nDeseldFJ39AbfIrVzR76HzbgTop7kQbvZ5KLuzAy56t9mm6WB_63zSTGwKERk7uV2UDVv8P-LckxZiNKjWVs9Y1N6I2EqE7reqmnIoL_576_nOPu0HrkvRSIeCku3AU8YAYbGauLmo8QmLWSRGKUClRq9XbkG0TvhMSodc0tixzUTXh6PSH7Y1d-_pDlynm0G9gwULjqoe5_G5dVwwTRRYgVRYotLdFXdVahyeW2RwwXogpzmVzWUu55UkWct9cwg82lliVMgvkKeBXDIZTvDO9T_s4JMEEw_G3lZf-TAr4Eyd_Rm7gYuKekqdegDDyWba4Kmn1r9-5q0JCtECT-Vimw0qhumUmZi97hytj30EABD9WeCHLByXQ4knVJbkADp26_409HqXWh2emrxgNZ2RB9WE6tNRXy59HA_cHqilHL6aAvWs32mVZCpbdlSJQMq1oDtnyGgOnTVx4Bu3UK_7Z5XcOZ9Whnjme4K9oRu0O0KOtInE54HSk]
ACME 请求响应头
Response { url: "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:23 GMT", "content-type": "application/json", "content-length": "690", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/order/62364548/1358562732", "replay-nonce": "0002F2RDkVTV1uN9UyBkfQ4X9c9z8hQheEFvnHSIMmGn1gs", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
ACME 请求响应内容
{
"status": "valid",
"expires": "2019-11-01T03:03:47Z",
"identifiers": [
{
"type": "dns",
"value": "*.docker.wsw.io"
},
{
"type": "dns",
"value": "*.wsw.io"
},
{
"type": "dns",
"value": "wsw.io"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732",
"certificate": "https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675"
}
订单状态为 valid
已验证状态, 已签发 certificate
,证书链接: https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675
第十步: 下载证书
http -v https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675
ACME 请求响应头
HTTP/1.1 200 OK
Cache-Control: public, max-age=0, no-cache
Connection: keep-alive
Content-Length: 3571
Content-Type: application/pem-certificate-chain
Date: Fri, 25 Oct 2019 03:28:58 GMT
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Server: nginx
Strict-Transport-Security: max-age=604800
X-Frame-Options: DENY
ACME 请求响应内容
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgISAxpNi7FU6Lcx62ibJu8iuKZ1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTEwMjUwMjA0MjNaFw0y
MDAxMjMwMjA0MjNaMBExDzANBgNVBAMTBndzdy5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANasvrNhssZJ/ppa46Sa6EN/rRGdBUkit/YWB6dtENrd
pkjzKxq4JTq8olvd7R6eihT6FgoIfE8CjXxjUP/N2hh72lT4AoKRTbNPPRHyRexv
hR6y+1Tl3+po+8q8QIWJEImcEtt0hskUhN06e7dku+o5LIPovEA34bYRGa8VnDwX
LSofjOdPW9bokCkPOYrdd6Xm2yGMGS0SQbuxL5HwHzERgZhc3fgnbTynAytRJYeK
hh4SHVynYnfqrBqDOQXpmnGowKlmxmasCrsX607KcPJpm0J2KPeyRwIaSOLb4yBt
UFMydijUYNXuDJgogCiMBPVY2GsoPY9Ga/Jfy3h9fv8CAwEAAaOCAncwggJzMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD
VR0TAQH/BAIwADAdBgNVHQ4EFgQUKVfx4HzziSt6P/WCk4nuJHSPdPkwHwYDVR0j
BBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBhMC4GCCsG
AQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3JnMC8GCCsG
AQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzAsBgNV
HREEJTAjgg8qLmRvY2tlci53c3cuaW+CCCoud3N3LmlvggZ3c3cuaW8wTAYDVR0g
BEUwQzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0
cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEA
dwCyHgXMi6LNiiBOh2b5K7mKJSBna9r6cOeySVMt74uQXgAAAW4A30oqAAAEAwBI
MEYCIQCIWgzZtE/EuwBGQjFBcZI30lg0wKEYWm/TRcKeLF/CQgIhAPt5AXThfoSS
pjFz/ME8ESpvy0/c9gQEHKwuyHcQNi4eAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFuAN9KUwAABAMARzBFAiBofVWPD+MruP04x5YhsexJ3vyT
pHYyKrPlVhhs0If8FwIhANMn04N/VsM2+mMM0MH1Ght6wA0CAxy1N2TzdeEWybnj
MA0GCSqGSIb3DQEBCwUAA4IBAQAPvcfKg3ufCmKMEUaNfV22KuZRcWfdk0zrxNaV
SpEdCT5SlRH53gvnkNgOdgKCJEdYcK/OuNCkfkYouHjCj1O8GG1Ip+aiG5lFBfPe
eWfurZP6MuFRehyS4UphxDPx5hmYi0zqaUcY3Oqh0sfMfhwpmGsSWm/cVvAdvg82
kHuBdWSlwpfhdmiNi8QXQx3Kzmfx/Gdfl/CKK4FqHzEUNwnngGPzP1yvTWs0d03N
QqRgUJ40g+HLCmvyl0KFhBk22qaVNNMjDzZojwmmMRERT613zpGVvq3Bg4ynhhvv
b7BhRp4Itpz4zJKpMkSfLsr0FF0m2TCT+hsE8D8EDAL/0mDV
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
最后一步: 验证签发证书
~/Server/Run/run_s/data/acme/cert_list/wsw.io
$ ls
ca.crt domain.csr domain.pem fullchain.crt private.key rootchain.pem
$ openssl x509 -text -in domain.pem
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:1a:4d:8b:b1:54:e8:b7:31:eb:68:9b:26:ef:22:b8:a6:75
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
Validity
Not Before: Oct 25 02:04:23 2019 GMT
Not After : Jan 23 02:04:23 2020 GMT
Subject: CN = wsw.io
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:d6:ac:be:b3:61:b2:c6:49:fe:9a:5a:e3:a4:9a:
e8:43:7f:ad:11:9d:05:49:22:b7:f6:16:07:a7:6d:
10:da:dd:a6:48:f3:2b:1a:b8:25:3a:bc:a2:5b:dd:
ed:1e:9e:8a:14:fa:16:0a:08:7c:4f:02:8d:7c:63:
50:ff:cd:da:18:7b:da:54:f8:02:82:91:4d:b3:4f:
3d:11:f2:45:ec:6f:85:1e:b2:fb:54:e5:df:ea:68:
fb:ca:bc:40:85:89:10:89:9c:12:db:74:86:c9:14:
84:dd:3a:7b:b7:64:bb:ea:39:2c:83:e8:bc:40:37:
e1:b6:11:19:af:15:9c:3c:17:2d:2a:1f:8c:e7:4f:
5b:d6:e8:90:29:0f:39:8a:dd:77:a5:e6:db:21:8c:
19:2d:12:41:bb:b1:2f:91:f0:1f:31:11:81:98:5c:
dd:f8:27:6d:3c:a7:03:2b:51:25:87:8a:86:1e:12:
1d:5c:a7:62:77:ea:ac:1a:83:39:05:e9:9a:71:a8:
c0:a9:66:c6:66:ac:0a:bb:17:eb:4e:ca:70:f2:69:
9b:42:76:28:f7:b2:47:02:1a:48:e2:db:e3:20:6d:
50:53:32:76:28:d4:60:d5:ee:0c:98:28:80:28:8c:
04:f5:58:d8:6b:28:3d:8f:46:6b:f2:5f:cb:78:7d:
7e:ff
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
29:57:F1:E0:7C:F3:89:2B:7A:3F:F5:82:93:89:EE:24:74:8F:74:F9
X509v3 Authority Key Identifier:
keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1
Authority Information Access:
OCSP - URI:http://ocsp.int-x3.letsencrypt.org
CA Issuers - URI:http://cert.int-x3.letsencrypt.org/
X509v3 Subject Alternative Name:
DNS:*.docker.wsw.io, DNS:*.wsw.io, DNS:wsw.io
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.1
Policy: 1.3.6.1.4.1.44947.1.1.1
CPS: http://cps.letsencrypt.org
CT Precertificate SCTs:
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : B2:1E:05:CC:8B:A2:CD:8A:20:4E:87:66:F9:2B:B9:8A:
25:20:67:6B:DA:FA:70:E7:B2:49:53:2D:EF:8B:90:5E
Timestamp : Oct 25 03:04:23.850 2019 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:88:5A:0C:D9:B4:4F:C4:BB:00:46:42:
31:41:71:92:37:D2:58:34:C0:A1:18:5A:6F:D3:45:C2:
9E:2C:5F:C2:42:02:21:00:FB:79:01:74:E1:7E:84:92:
A6:31:73:FC:C1:3C:11:2A:6F:CB:4F:DC:F6:04:04:1C:
AC:2E:C8:77:10:36:2E:1E
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 6F:53:76:AC:31:F0:31:19:D8:99:00:A4:51:15:FF:77:
15:1C:11:D9:02:C1:00:29:06:8D:B2:08:9A:37:D9:13
Timestamp : Oct 25 03:04:23.891 2019 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:68:7D:55:8F:0F:E3:2B:B8:FD:38:C7:96:
21:B1:EC:49:DE:FC:93:A4:76:32:2A:B3:E5:56:18:6C:
D0:87:FC:17:02:21:00:D3:27:D3:83:7F:56:C3:36:FA:
63:0C:D0:C1:F5:1A:1B:7A:C0:0D:02:03:1C:B5:37:64:
F3:75:E1:16:C9:B9:E3
Signature Algorithm: sha256WithRSAEncryption
0f:bd:c7:ca:83:7b:9f:0a:62:8c:11:46:8d:7d:5d:b6:2a:e6:
51:71:67:dd:93:4c:eb:c4:d6:95:4a:91:1d:09:3e:52:95:11:
f9:de:0b:e7:90:d8:0e:76:02:82:24:47:58:70:af:ce:b8:d0:
a4:7e:46:28:b8:78:c2:8f:53:bc:18:6d:48:a7:e6:a2:1b:99:
45:05:f3:de:79:67:ee:ad:93:fa:32:e1:51:7a:1c:92:e1:4a:
61:c4:33:f1:e6:19:98:8b:4c:ea:69:47:18:dc:ea:a1:d2:c7:
cc:7e:1c:29:98:6b:12:5a:6f:dc:56:f0:1d:be:0f:36:90:7b:
81:75:64:a5:c2:97:e1:76:68:8d:8b:c4:17:43:1d:ca:ce:67:
f1:fc:67:5f:97:f0:8a:2b:81:6a:1f:31:14:37:09:e7:80:63:
f3:3f:5c:af:4d:6b:34:77:4d:cd:42:a4:60:50:9e:34:83:e1:
cb:0a:6b:f2:97:42:85:84:19:36:da:a6:95:34:d3:23:0f:36:
68:8f:09:a6:31:11:11:4f:ad:77:ce:91:95:be:ad:c1:83:8c:
a7:86:1b:ef:6f:b0:61:46:9e:08:b6:9c:f8:cc:92:a9:32:44:
9f:2e:ca:f4:14:5d:26:d9:30:93:fa:1b:04:f0:3f:04:0c:02:
ff:d2:60:d5
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgISAxpNi7FU6Lcx62ibJu8iuKZ1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTEwMjUwMjA0MjNaFw0y
MDAxMjMwMjA0MjNaMBExDzANBgNVBAMTBndzdy5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANasvrNhssZJ/ppa46Sa6EN/rRGdBUkit/YWB6dtENrd
pkjzKxq4JTq8olvd7R6eihT6FgoIfE8CjXxjUP/N2hh72lT4AoKRTbNPPRHyRexv
hR6y+1Tl3+po+8q8QIWJEImcEtt0hskUhN06e7dku+o5LIPovEA34bYRGa8VnDwX
LSofjOdPW9bokCkPOYrdd6Xm2yGMGS0SQbuxL5HwHzERgZhc3fgnbTynAytRJYeK
hh4SHVynYnfqrBqDOQXpmnGowKlmxmasCrsX607KcPJpm0J2KPeyRwIaSOLb4yBt
UFMydijUYNXuDJgogCiMBPVY2GsoPY9Ga/Jfy3h9fv8CAwEAAaOCAncwggJzMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD
VR0TAQH/BAIwADAdBgNVHQ4EFgQUKVfx4HzziSt6P/WCk4nuJHSPdPkwHwYDVR0j
BBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBhMC4GCCsG
AQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3JnMC8GCCsG
AQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzAsBgNV
HREEJTAjgg8qLmRvY2tlci53c3cuaW+CCCoud3N3LmlvggZ3c3cuaW8wTAYDVR0g
BEUwQzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0
cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEA
dwCyHgXMi6LNiiBOh2b5K7mKJSBna9r6cOeySVMt74uQXgAAAW4A30oqAAAEAwBI
MEYCIQCIWgzZtE/EuwBGQjFBcZI30lg0wKEYWm/TRcKeLF/CQgIhAPt5AXThfoSS
pjFz/ME8ESpvy0/c9gQEHKwuyHcQNi4eAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFuAN9KUwAABAMARzBFAiBofVWPD+MruP04x5YhsexJ3vyT
pHYyKrPlVhhs0If8FwIhANMn04N/VsM2+mMM0MH1Ght6wA0CAxy1N2TzdeEWybnj
MA0GCSqGSIb3DQEBCwUAA4IBAQAPvcfKg3ufCmKMEUaNfV22KuZRcWfdk0zrxNaV
SpEdCT5SlRH53gvnkNgOdgKCJEdYcK/OuNCkfkYouHjCj1O8GG1Ip+aiG5lFBfPe
eWfurZP6MuFRehyS4UphxDPx5hmYi0zqaUcY3Oqh0sfMfhwpmGsSWm/cVvAdvg82
kHuBdWSlwpfhdmiNi8QXQx3Kzmfx/Gdfl/CKK4FqHzEUNwnngGPzP1yvTWs0d03N
QqRgUJ40g+HLCmvyl0KFhBk22qaVNNMjDzZojwmmMRERT613zpGVvq3Bg4ynhhvv
b7BhRp4Itpz4zJKpMkSfLsr0FF0m2TCT+hsE8D8EDAL/0mDV
-----END CERTIFICATE-----
记录完整签发证书验证流程日志
~/Server/Run/run_s
$ cargo run acme run -i wsw.io
[===][run_cmd_results: [2019-10-25 11:03:43][run_s][INFO] #[系统运行环境][run_s_hostname: "a.us.1"][run_s_home_dir: "/data/home/coam"]
[2019-10-25 11:03:43][run_s][INFO] dns sync [dns_name: wsw.io]
[2019-10-25 11:03:43][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s/data/dns"][cmd_rs_envs: {}]...
[2019-10-25 11:03:43][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.List -d login_token=72921,303e442575de36c5b854c9eb95da2106&offset=0&length=1000&format=json&domain=wsw.io
[2019-10-25 11:03:43][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:03:43][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:03:43"},"domain":{"id":"63055756","name":"wsw.io","punycode":"wsw.io","grade":"DP_Free","owner":"zyf@lonal.com","ext_status":"","ttl":600,"min_ttl":600,"dnspod_ns":["f1g1ns1.dnspod.net","f1g1ns2.dnspod.net"],"status":"enable"},"info":{"sub_domains":"30","record_total":"30","records_num":"30"},"records":[{"id":"335593281","ttl":"86400","value":"f1g1ns1.dnspod.net.","enabled":"1","status":"enabled","updated_on":"2017-12-10 10:35:52","name":"@","line":"\u9ed8\u8ba4","line_id":"0","type":"NS","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0","hold":"hold"},{"id":"335593282","ttl":"86400","value":"f1g1ns2.dnspod.net.","enabled":"1","status":"enabled","updated_on":"2017-12-10 10:35:52","name":"@","line":"\u9ed8\u8ba4","line_id":"0","type":"NS","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0","hold":"hold"},{"id":"399479127","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:58","name":"@","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479128","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:58","name":"sns","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479129","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:58","name":"wsa","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479132","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:59","name":"mail","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479135","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:59","name":"mirror","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479137","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:41:59","name":"pp","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479138","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:00","name":"forum","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479141","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:00","name":"im","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479145","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:00","name":"lp","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479147","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:01","name":"lw","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479148","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:01","name":"ma","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479150","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:02","name":"wl","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479151","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:02","name":"www","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479152","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:02","name":"w","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479153","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:03","name":"api","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479154","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:03","name":"mpi","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479155","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:03","name":"wpi","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479157","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:04","name":"app","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479160","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:04","name":"open","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479161","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:04","name":"pay","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479162","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:05","name":"ap","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479163","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:05","name":"cp","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479165","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:05","name":"dp","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479168","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:06","name":"gp","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479169","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:06","name":"ep","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479172","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:07","name":"p","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479173","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:07","name":"cli","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"},{"id":"399479174","ttl":"600","value":"8.9.3.182","enabled":"1","status":"enabled","updated_on":"2019-01-01 18:42:07","name":"blog","line":"\u9ed8\u8ba4","line_id":"0","type":"A","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"}]}
[2019-10-25 11:03:43][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 8004 100 7907 100 97 26712 327 --:--:-- --:--:-- --:--:-- 27132
[2019-10-25 11:03:43][run_s::common::dns::task][DEBUG] [DNSPOD][跳过特殊域名解析记录(NS|TXT)] -> [remote_domain_record[type: NS,name: @,value: f1g1ns1.dnspod.net.]
[2019-10-25 11:03:43][run_s::common::dns::task][DEBUG] [DNSPOD][跳过特殊域名解析记录(NS|TXT)] -> [remote_domain_record[type: NS,name: @,value: f1g1ns2.dnspod.net.]
[2019-10-25 11:03:43][run_s::common::dns::task][DEBUG] [DNSPOD][跳过特殊域名解析记录(NS|TXT)] -> [local_domain_record[type: NS,name: @,value: f1g1ns1.dnspod.net.]
[2019-10-25 11:03:43][run_s::common::dns::task][DEBUG] [DNSPOD][跳过特殊域名解析记录(NS|TXT)] -> [local_domain_record[type: NS,name: @,value: f1g1ns2.dnspod.net.]
[ib_info: [DnsRecordListRecord { id: "335593281", name: "@", types: "NS", value: "f1g1ns1.dnspod.net.", status: "enabled", ttl: "86400", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "335593282", name: "@", types: "NS", value: "f1g1ns2.dnspod.net.", status: "enabled", ttl: "86400", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479127", name: "@", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479128", name: "sns", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479129", name: "wsa", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479132", name: "mail", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479135", name: "mirror", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479137", name: "pp", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479138", name: "forum", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479141", name: "im", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479145", name: "lp", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479147", name: "lw", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479148", name: "ma", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479150", name: "wl", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479151", name: "www", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479152", name: "w", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479153", name: "api", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479154", name: "mpi", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479155", name: "wpi", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479157", name: "app", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479160", name: "open", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479161", name: "pay", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479162", name: "ap", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479163", name: "cp", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479165", name: "dp", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479168", name: "gp", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479169", name: "ep", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479172", name: "p", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479173", name: "cli", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }, DnsRecordListRecord { id: "399479174", name: "blog", types: "A", value: "8.9.3.182", status: "enabled", ttl: "600", line_id: "0", mx: "0", monitor_status: "" }]]
]
[2019-10-25 11:03:43][run_s::common::acme::task][INFO] [######][:->3][验证本地泛域名证书是否有效][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:43][run_s::common::acme::task][DEBUG] [准备校验已签发域名证书][ACME][verify_acme_order()][rs_path: "/data/home/coam/Server/Run/run_s"]
[2019-10-25 11:03:43][run_s::common::acme::task][INFO] [证书文件数据校验开始][acme_name: "wsw.io"]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_issuer_name_entry_string: US]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_issuer_name_entry_string: Let's Encrypt]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_issuer_name_entry_string: Let's Encrypt Authority X3]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_subject_name_entry_string: wsw.io]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_subject_alt_name_email: None][acme_cert_subject_alt_name_dnsname: Some("*.wsw.io")][acme_cert_subject_alt_name_uri: None][acme_cert_subject_alt_name_ipaddress: None]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_subject_alt_name_email: None][acme_cert_subject_alt_name_dnsname: Some("wsw.io")][acme_cert_subject_alt_name_uri: None][acme_cert_subject_alt_name_ipaddress: None]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据]acme_cert_public_key:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4vTG1guVHwt5mP6lbzsw
PwWbjWI6QeVJm0T9/aC8RbAHGG4//9phokukwP4KK7UrdOzVLp0UnA0u5u8aMhRN
edtfs/knJxNbF3+lem9G31Y8g7RMXhA3JmFnrwUPv45XeeD0gfQsJQqjG7t0IR+j
rojkG/nO7PPK68wB9Xci4lXt1xDJJrWXh7HoxPwazPLYlunvcmpxJjd1aEaZSvs+
q1U6ln9dJns966UNHvngmYYUYtPQfXDo8cf+0jQOTAuHyHYvMscjGTLVxK3RxEUi
Ap7CgluFn0gPCrzGRkGUCem267wSm9y/Uy7RtLRZTlsWPReun6SiuUU6jGQcHz1p
cQIDAQAB
-----END PUBLIC KEY-----
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_digest_bytes: [a6, 73, 35, 6c, 62, ff, 8d, be, 65, e5, a3, af, 2, a, d8, 5c, 36, 93, 70, 42, a, bd, 9b, 63, 56, 75, eb, 72, 46, db, cb, c2]]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_fingerprint_bytes: [a6, 73, 35, 6c, 62, ff, 8d, be, 65, e5, a3, af, 2, a, d8, 5c, 36, 93, 70, 42, a, bd, 9b, 63, 56, 75, eb, 72, 46, db, cb, c2]]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书原始有效期][not_before_date: Jul 30 01:53:43 2019 GMT][not_after_date: Oct 28 01:53:43 2019 GMT]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书有效期][not_before_dt: 2019-07-30 01:53:43 +00:00][not_before_dt_ts: 1564451623][not_after_dt: 2019-10-28 01:53:43 +00:00][not_after_dt_ts: 1572227623]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_signature_slice_bytes: [11, 78, 48, 85, f0, 5c, d5, 5a, f9, 8d, 88, f9, 2d, fc, 6a, da, 38, 3a, c6, 83, fa, 9a, ce, 91, 1e, 94, ce, d9, a5, 76, 71, 2c, 4e, bb, 80, 55, e1, df, 5e, 4e, 19, 22, 25, ad, 14, 2, 12, e0, ad, 99, 2, d2, 32, c8, 94, 5a, 2f, d8, 5f, f7, b2, 5f, 7b, 2, ac, 5, f8, ea, 80, 45, a6, a4, 97, e8, 19, 26, 8a, 66, aa, e0, e8, 5b, 55, cb, 2a, ea, 71, 1, 43, 3, 61, d, 47, e2, f6, 67, b3, 9, 80, a, b9, 69, 62, b8, 89, 40, bb, 37, 46, c6, 54, 6b, fd, fc, 12, 11, 82, b6, d5, 15, 59, 35, a9, 83, 49, 4e, 50, b7, 82, 57, 88, 2, e, 7f, a2, c0, d0, 14, 94, e9, f2, eb, 49, fe, cb, 76, 64, 59, 9c, d2, fb, 8d, e4, d0, ab, 16, e3, eb, 64, 50, d4, db, 9, 2e, cd, 48, b2, e1, dd, ef, 9f, b3, d5, b6, 1b, 18, 62, f, 86, 8b, d7, e5, 8c, 73, 69, f3, 41, 2f, cf, f0, b4, 23, 84, 2a, cf, 74, a2, 73, dd, 8f, c0, 93, 40, bd, a8, 47, 36, 86, 64, 60, 4d, 3, 65, a3, 4f, 61, 68, cb, 8b, 6c, e3, 10, a9, 31, 2, ad, 29, f8, 4b, 72, 60, a7, 6a, 90, a4, 57, c1, 14, f2, 10, a2, f8, d4, 63, cc, 9b, c6, 81, b3, 84, 8d, 89, d5, 15, 59, 8b]]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_signature_algorithm: sha256WithRSAEncryption]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_ocsp_responder: http://ocsp.int-x3.letsencrypt.org]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_serial_number: Ok(393511016603663467537158965063350792197354)]
[2019-10-25 11:03:43][run_s::common::acme::tool][DEBUG] [证书数据][acme_cert_pem:
-----BEGIN CERTIFICATE-----
MIIFUDCCBDigAwIBAgISBIRsyQhGgU8RaullNQC6D5TqMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTA3MzAwMTUzNDNaFw0x
OTEwMjgwMTUzNDNaMBExDzANBgNVBAMTBndzdy5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAOL0xtYLlR8LeZj+pW87MD8Fm41iOkHlSZtE/f2gvEWw
BxhuP//aYaJLpMD+Ciu1K3Ts1S6dFJwNLubvGjIUTXnbX7P5JycTWxd/pXpvRt9W
PIO0TF4QNyZhZ68FD7+OV3ng9IH0LCUKoxu7dCEfo66I5Bv5zuzzyuvMAfV3IuJV
7dcQySa1l4ex6MT8Gszy2Jbp73JqcSY3dWhGmUr7PqtVOpZ/XSZ7PeulDR754JmG
FGLT0H1w6PHH/tI0DkwLh8h2LzLHIxky1cSt0cRFIgKewoJbhZ9IDwq8xkZBlAnp
tuu8Epvcv1Mu0bS0WU5bFj0Xrp+korlFOoxkHB89aXECAwEAAaOCAmcwggJjMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD
VR0TAQH/BAIwADAdBgNVHQ4EFgQUbIg5vkhPC82XMwoAc5iVAu6D8aUwHwYDVR0j
BBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBhMC4GCCsG
AQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3JnMC8GCCsG
AQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzAbBgNV
HREEFDASgggqLndzdy5pb4IGd3N3LmlvMEwGA1UdIARFMEMwCAYGZ4EMAQIBMDcG
CysGAQQBgt8TAQEBMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2VuY3J5
cHQub3JnMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcA4mlLribo6UAJ6IYbtjuD
1D7n/nSI+6SPKJMBnd3x2/4AAAFsQMw/DgAABAMASDBGAiEAlA3YNZipe9GV/V/7
FPMCNdQqV2SY7WzJyvPoocNN7iwCIQC7uCjtqGQLQsV2TU6h8rpIlFpR1ZkkOqd3
Av4nL56jxwB3AGPy283oO8wszwtyhCdXazOkjWF3j711pjixx2hUS9iNAAABbEDM
PwEAAAQDAEgwRgIhALEYnizcHBvaQEbSylNNIdbuos2MjGuKG+kQTaKl3f9aAiEA
tUxCmXDpEPhXNO47GLa+NSPRJbZ2FiZgVRFO/cz7fuYwDQYJKoZIhvcNAQELBQAD
ggEBABF4SIXwXNVa+Y2I+S38ato4OsaD+prOkR6UztmldnEsTruAVeHfXk4ZIiWt
FAIS4K2ZAtIyyJRaL9hf97JfewKsBfjqgEWmpJfoGSaKZqrg6FtVyyrqcQFDA2EN
R+L2Z7MJgAq5aWK4iUC7N0bGVGv9/BIRgrbVFVk1qYNJTlC3gleIAg5/osDQFJTp
8utJ/st2ZFmc0vuN5NCrFuPrZFDU2wkuzUiy4d3vn7PVthsYYg+Gi9fljHNp80Ev
z/C0I4Qqz3Sic92PwJNAvahHNoZkYE0DZaNPYWjLi2zjEKkxAq0p+EtyYKdqkKRX
wRTyEKL41GPMm8aBs4SNidUVWYs=
-----END CERTIFICATE-----
[2019-10-25 11:03:43][run_s::common::acme::task][INFO] [证书文件数据校验结果][acme_cert_info: AcmeCert { acme_name: "wsw.io", acme_not_before_dt: 2019-07-30T09:53:43+08:00, acme_not_after_dt: 2019-10-28T09:53:43+08:00, acme_wildcards: ["*.wsw.io", "wsw.io"] }]
[2019-10-25 11:03:43][run_s::common::acme::tool][WARN] [证书已过更新保护期,需重新签发证书][acme_cert_not_after_dt: 2019-10-28T09:53:43+08:00][acme_cert_not_after_dt.timestamp(): 1572227623][过期时间差 acme_cert_dt_diff: 255000]
[2019-10-25 11:03:43][run_s::common::acme::task][INFO] [######][:->5][ACME:申请签发证书泛域名证书-注册账户][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:43][acme_client::libs::v2][INFO] [签发域名证书环境][ACME][from_url()][LETS_ENCRYPT_DIRECTORY_URL][url: "https://acme-v02.api.letsencrypt.org/directory"]
[2019-10-25 11:03:44][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/directory", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:44 GMT", "content-type": "application/json", "content-length": "658", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:44][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"F5tQlwVaqmg": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417",
"keyChange": "https://acme-v02.api.letsencrypt.org/acme/key-change",
"meta": {
"caaIdentities": [
"letsencrypt.org"
],
"termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf",
"website": "https://letsencrypt.org"
},
"newAccount": "https://acme-v02.api.letsencrypt.org/acme/new-acct",
"newNonce": "https://acme-v02.api.letsencrypt.org/acme/new-nonce",
"newOrder": "https://acme-v02.api.letsencrypt.org/acme/new-order",
"revokeCert": "https://acme-v02.api.letsencrypt.org/acme/revoke-cert"
}
[2019-10-25 11:03:44][acme_client::libs::v2][DEBUG] [准备注册账户流程]
[2019-10-25 11:03:44][acme_client::libs::v2][INFO] [发送账户注册请求参数][resources: newAccount][map: {"termsOfServiceAgreed": Bool(true), "contact": Array([String("mailto: zyf@iirii.com")]), "email": String("admin@iirii.com")}]
[2019-10-25 11:03:44][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: newAccount][kid: None][payload_value: {"termsOfServiceAgreed":true,"contact":["mailto: zyf@iirii.com"],"email":"admin@iirii.com"}]
[2019-10-25 11:03:44][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:45 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q")]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-acct]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"termsOfServiceAgreed":true,"contact":["mailto: zyf@iirii.com"],"email":"admin@iirii.com"}]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"alg": String("RS256"), "nonce": String("0102jDNrP5SRCc6rJfvQf28aopMGvteNJFyWiukU_pzU5-Q"), "jwk": Object({"e": String("AQAB"), "kty": String("RSA"), "n": String("5H15UqCfXJJwkuX-vsMB9mV0QHcsYOLDcexJZpEkXmzFHOIDiKBoJzVxmoK9XK4plR3SLvNczkDTKsYdegd6jyO5xW-CHFkviJMXr30_5IYkjVpXakJJumblcTo5owzNRMTuylqewVB29I92GmDPGLsyAmUi8bmeYRa381omMi5SBFModRPamiYxeQG_HsyOalZbeoZfCoT6CnxeJWevxIqV8MvCS9qwfrdqnNFw1uihKIlaijaMvKZ42-8z6iZ7zT2G65wt5_GXKi0eE90xVX6d0zaD6NmWeAGbKYPu6F9rfxaMfQgP_S-iTq1BTM2gBIPa_VzMNRIeOK3VKGqs60lDF700TIWgzvnPgs3QdAcHgouehPZe0xfOWg_J7_sv-yz0ZI9srfnibjU_gcc3xsdHxCvCzSONLjiz9cT6-QkTNVziN1QeC3SALBZkxoJ1UoRkE9okrjlVBXITlBJ-YIxUGJlMQX5xEbExr7w5n7GG1bBbOCClmpCzcXRY2ZIMqKB82ZaRmF6dMJAbmQCaTQ0VheIAu3N_3K-hR-76Mu7iDqdTKrTHRL5sQ7ZWyFLXNq7wSjnkP0pjbovAVfwW4HmQXVeIM8SR7g4foRz4Zr15cOVHSmLPxWHVmYZ9R9LWv6PIK8bg6ChuaksWtzUMJFtHOdnqHp98fA8LbdvBowc")}), "url": String("https://acme-v02.api.letsencrypt.org/acme/new-acct")}]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: y3OkcPv2UlUs1sJBTOyh_rKHjQv1dSjxLzgmUSnrDl8eDMUQ-i_u4PW1NFX9iQtb2BOyvjkob7Eh7spRw1k1GKddaLSf9pbV_y7MM0GhY5i86LwXbqP7ZPt5JgUF58Mbw4NQVb5uzVWDiBvqv9gBGC_gTcyp45vQYofvId7WjyniBjvlk6bAIYv9Vg0tLySDsaqrkcIYhi-kMuDjzVZtwlN6bb2ZCxIsUNvC9QtrDV9Cu_b6ingbyJoxOwQz3yWtKIBxDRACeVqzeb2oqG8Awigw_fP_M2ESlBUMefp-Dpc9MySLoecxyXW5EFnf7gLbEdP_KpGvL-pyGkFwNfWEvFShKHz3NHmpR3L31R_olZWE3-5_ie5acOe7JP1t48dByQsyJLEWR6jrTLSEsX7XkCdGFdOgHG2ccIZCl8qfk_i1fUhCFb7LuoDi8lGmp-2NF-JG84sRF7welP0txHTc9HyXCeIo4y24-quyd__oXKllZPMPK9HDLzYaLC9Jv521DwEu4UZgILIS_T0q2nQfI-ZDqkPHs2n-XUjFT_EMzWCFrPuAAeFNhmGZt_jESe4D0l3AyVGk-S5ulSWJW7IY6oQLRJct1AIErbhu7SfHCi8sUDQGX3eokL68PsL7NJzggYu_CHBv_IrHgGngVHSNN1nSqClFzxs-8mMWB6smx7Q]
[2019-10-25 11:03:45][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-acct][api_payload_jws: {"protected": String("eyJhbGciOiJSUzI1NiIsIm5vbmNlIjoiMDEwMmpETnJQNVNSQ2M2ckpmdlFmMjhhb3BNR3Z0ZU5KRnlXaXVrVV9welU1LVEiLCJqd2siOnsiZSI6IkFRQUIiLCJrdHkiOiJSU0EiLCJuIjoiNUgxNVVxQ2ZYSkp3a3VYLXZzTUI5bVYwUUhjc1lPTERjZXhKWnBFa1htekZIT0lEaUtCb0p6Vnhtb0s5WEs0cGxSM1NMdk5jemtEVEtzWWRlZ2Q2anlPNXhXLUNIRmt2aUpNWHIzMF81SVlralZwWGFrSkp1bWJsY1RvNW93ek5STVR1eWxxZXdWQjI5STkyR21EUEdMc3lBbVVpOGJtZVlSYTM4MW9tTWk1U0JGTW9kUlBhbWlZeGVRR19Ic3lPYWxaYmVvWmZDb1Q2Q254ZUpXZXZ4SXFWOE12Q1M5cXdmcmRxbk5GdzF1aWhLSWxhaWphTXZLWjQyLTh6NmlaN3pUMkc2NXd0NV9HWEtpMGVFOTB4Vlg2ZDB6YUQ2Tm1XZUFHYktZUHU2RjlyZnhhTWZRZ1BfUy1pVHExQlRNMmdCSVBhX1Z6TU5SSWVPSzNWS0dxczYwbERGNzAwVElXZ3p2blBnczNRZEFjSGdvdWVoUFplMHhmT1dnX0o3X3N2LXl6MFpJOXNyZm5pYmpVX2djYzN4c2RIeEN2Q3pTT05Maml6OWNUNi1Ra1ROVnppTjFRZUMzU0FMQlpreG9KMVVvUmtFOW9rcmpsVkJYSVRsQkotWUl4VUdKbE1RWDV4RWJFeHI3dzVuN0dHMWJCYk9DQ2xtcEN6Y1hSWTJaSU1xS0I4MlphUm1GNmRNSkFibVFDYVRRMFZoZUlBdTNOXzNLLWhSLTc2TXU3aURxZFRLclRIUkw1c1E3Wld5RkxYTnE3d1NqbmtQMHBqYm92QVZmd1c0SG1RWFZlSU04U1I3ZzRmb1J6NFpyMTVjT1ZIU21MUHhXSFZtWVo5UjlMV3Y2UElLOGJnNkNodWFrc1d0elVNSkZ0SE9kbnFIcDk4ZkE4TGJkdkJvd2MifSwidXJsIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvbmV3LWFjY3QifQ"), "signature": String("y3OkcPv2UlUs1sJBTOyh_rKHjQv1dSjxLzgmUSnrDl8eDMUQ-i_u4PW1NFX9iQtb2BOyvjkob7Eh7spRw1k1GKddaLSf9pbV_y7MM0GhY5i86LwXbqP7ZPt5JgUF58Mbw4NQVb5uzVWDiBvqv9gBGC_gTcyp45vQYofvId7WjyniBjvlk6bAIYv9Vg0tLySDsaqrkcIYhi-kMuDjzVZtwlN6bb2ZCxIsUNvC9QtrDV9Cu_b6ingbyJoxOwQz3yWtKIBxDRACeVqzeb2oqG8Awigw_fP_M2ESlBUMefp-Dpc9MySLoecxyXW5EFnf7gLbEdP_KpGvL-pyGkFwNfWEvFShKHz3NHmpR3L31R_olZWE3-5_ie5acOe7JP1t48dByQsyJLEWR6jrTLSEsX7XkCdGFdOgHG2ccIZCl8qfk_i1fUhCFb7LuoDi8lGmp-2NF-JG84sRF7welP0txHTc9HyXCeIo4y24-quyd__oXKllZPMPK9HDLzYaLC9Jv521DwEu4UZgILIS_T0q2nQfI-ZDqkPHs2n-XUjFT_EMzWCFrPuAAeFNhmGZt_jESe4D0l3AyVGk-S5ulSWJW7IY6oQLRJct1AIErbhu7SfHCi8sUDQGX3eokL68PsL7NJzggYu_CHBv_IrHgGngVHSNN1nSqClFzxs-8mMWB6smx7Q"), "payload": String("eyJ0ZXJtc09mU2VydmljZUFncmVlZCI6dHJ1ZSwiY29udGFjdCI6WyJtYWlsdG86IHp5ZkBpaXJpaS5jb20iXSwiZW1haWwiOiJhZG1pbkBpaXJpaS5jb20ifQ")}]
[2019-10-25 11:03:46][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-acct", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:46 GMT", "content-type": "application/json", "content-length": "887", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/acct/62364548", "replay-nonce": "0101pQGa3EKKOl32pQwJQlE8SrkN3ZqJSaJyOV3WhVsniuI", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:46][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"key": {
"kty": "RSA",
"n": "5H15UqCfXJJwkuX-vsMB9mV0QHcsYOLDcexJZpEkXmzFHOIDiKBoJzVxmoK9XK4plR3SLvNczkDTKsYdegd6jyO5xW-CHFkviJMXr30_5IYkjVpXakJJumblcTo5owzNRMTuylqewVB29I92GmDPGLsyAmUi8bmeYRa381omMi5SBFModRPamiYxeQG_HsyOalZbeoZfCoT6CnxeJWevxIqV8MvCS9qwfrdqnNFw1uihKIlaijaMvKZ42-8z6iZ7zT2G65wt5_GXKi0eE90xVX6d0zaD6NmWeAGbKYPu6F9rfxaMfQgP_S-iTq1BTM2gBIPa_VzMNRIeOK3VKGqs60lDF700TIWgzvnPgs3QdAcHgouehPZe0xfOWg_J7_sv-yz0ZI9srfnibjU_gcc3xsdHxCvCzSONLjiz9cT6-QkTNVziN1QeC3SALBZkxoJ1UoRkE9okrjlVBXITlBJ-YIxUGJlMQX5xEbExr7w5n7GG1bBbOCClmpCzcXRY2ZIMqKB82ZaRmF6dMJAbmQCaTQ0VheIAu3N_3K-hR-76Mu7iDqdTKrTHRL5sQ7ZWyFLXNq7wSjnkP0pjbovAVfwW4HmQXVeIM8SR7g4foRz4Zr15cOVHSmLPxWHVmYZ9R9LWv6PIK8bg6ChuaksWtzUMJFtHOdnqHp98fA8LbdvBowc",
"e": "AQAB"
},
"contact": [
"mailto: zyf@iirii.com"
],
"initialIp": "47.244.154.194",
"createdAt": "2019-07-30T02:35:17Z",
"status": "valid"
}
[2019-10-25 11:03:46][acme_client::libs::v2][INFO] [账户注册成功] -> StatusCode::OK - User successfully registered!
[2019-10-25 11:03:46][run_s::common::acme::task][INFO] [ACME域名订单验证流程][acme_name: "wsw.io"][acme_wildcards: ["wsw.io", "*.wsw.io", "*.docker.wsw.io"]]
[2019-10-25 11:03:46][run_s::common::acme::task][INFO] [######][:->6][ACME:创建泛域名证书订单][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:46][run_s::common::acme::task][INFO] [开始签发证书域名][acme_name: "wsw.io"][acme_data: AcmeData { acme_name: "wsw.io", acme_wildcards: ["wsw.io", "*.wsw.io", "*.docker.wsw.io"] }]
[2019-10-25 11:03:46][run_s::common::acme::task][INFO] [######][:->7][ACME:请求创建泛域名证书订单][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:46][acme_client::libs::v2][INFO] [创建订单请求参数][resources: createOrder][order_params: {"identifiers": Some([AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, AcmeOrderIdentifier { types: "dns", value: "*.wsw.io" }, AcmeOrderIdentifier { types: "dns", value: "*.docker.wsw.io" }])}]
[2019-10-25 11:03:46][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: newOrder][kid: Some("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")][payload_value: {"identifiers":[{"type":"dns","value":"wsw.io"},{"type":"dns","value":"*.wsw.io"},{"type":"dns","value":"*.docker.wsw.io"}]}]
[2019-10-25 11:03:46][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:47 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0002EYct0CLH8kMNzdwN-yfPlcdGiOTxOKZpME5reYk0yIM", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0002EYct0CLH8kMNzdwN-yfPlcdGiOTxOKZpME5reYk0yIM")]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-order]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"identifiers":[{"type":"dns","value":"wsw.io"},{"type":"dns","value":"*.wsw.io"},{"type":"dns","value":"*.docker.wsw.io"}]}]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"alg": String("RS256"), "url": String("https://acme-v02.api.letsencrypt.org/acme/new-order"), "nonce": String("0002EYct0CLH8kMNzdwN-yfPlcdGiOTxOKZpME5reYk0yIM"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")}]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: GejsD_aCmjQOT5b4qanCRrYMyGERa_6gfqCqj6ESXPzUnuN2TQIiDdYXwRoaPp3rWdE2mP4CSdJjrtyScIEIKbSt7n23X9Rr0qgLRtx3SxSeHrZX46O2IAN2mMq1wi_remYuBUc41-fDhlOSt1dhVaBruOd_e02RXKFuXWlwt3n9nEsDuWstWXh0a6sf6mUEU2uSwfc_RDclw3ArxmpwBe4T6yIX2HDLpopMVRrv-qwS8aCGzVxkRP2dIzWutphqorda3l9nqUjOII9y9yP8bbbQ65Hia1OCE4mluFILrB04N_CMfA3xh2mi8RYE6pECQFa7RyvOGXcILUe4-FVqZsQ6sfAwRKTmTa8hOu-ClMzlOLcH-v_g-bPudatUcCbc-VEDkHhusXoSgD66twNqvTWJEinnz-qq941I5dBfPypYavHO2yTaosoi89Z35Aa9YPjCNjG1j6_meQbRF1xR9LIF8UeBnEJgfU1I9z8mXg4JwcCxW4Aq6_nGOoxneavDpFKNJppAciam0bwryifC15-QrxWR_G34u4yr1JXaCvOyVqkP30vgumTKUAGM0pbVGS4iE_PCcXWlYgsZIF_GZEW6ygqk6F6gP49O8spF8GmEgi6ph_AkDvtpkGU5pEx3tKYrchWGwbn3_CDROeklWMIFbBhy5Zoc0IQ6WgqwbB4]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-order][api_payload_jws: {"payload": String("eyJpZGVudGlmaWVycyI6W3sidHlwZSI6ImRucyIsInZhbHVlIjoid3N3LmlvIn0seyJ0eXBlIjoiZG5zIiwidmFsdWUiOiIqLndzdy5pbyJ9LHsidHlwZSI6ImRucyIsInZhbHVlIjoiKi5kb2NrZXIud3N3LmlvIn1dfQ"), "protected": String("eyJhbGciOiJSUzI1NiIsInVybCI6Imh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL25ldy1vcmRlciIsIm5vbmNlIjoiMDAwMkVZY3QwQ0xIOGtNTnpkd04teWZQbGNkR2lPVHhPS1pwTUU1cmVZazB5SU0iLCJraWQiOiJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hY2N0LzYyMzY0NTQ4In0"), "signature": String("GejsD_aCmjQOT5b4qanCRrYMyGERa_6gfqCqj6ESXPzUnuN2TQIiDdYXwRoaPp3rWdE2mP4CSdJjrtyScIEIKbSt7n23X9Rr0qgLRtx3SxSeHrZX46O2IAN2mMq1wi_remYuBUc41-fDhlOSt1dhVaBruOd_e02RXKFuXWlwt3n9nEsDuWstWXh0a6sf6mUEU2uSwfc_RDclw3ArxmpwBe4T6yIX2HDLpopMVRrv-qwS8aCGzVxkRP2dIzWutphqorda3l9nqUjOII9y9yP8bbbQ65Hia1OCE4mluFILrB04N_CMfA3xh2mi8RYE6pECQFa7RyvOGXcILUe4-FVqZsQ6sfAwRKTmTa8hOu-ClMzlOLcH-v_g-bPudatUcCbc-VEDkHhusXoSgD66twNqvTWJEinnz-qq941I5dBfPypYavHO2yTaosoi89Z35Aa9YPjCNjG1j6_meQbRF1xR9LIF8UeBnEJgfU1I9z8mXg4JwcCxW4Aq6_nGOoxneavDpFKNJppAciam0bwryifC15-QrxWR_G34u4yr1JXaCvOyVqkP30vgumTKUAGM0pbVGS4iE_PCcXWlYgsZIF_GZEW6ygqk6F6gP49O8spF8GmEgi6ph_AkDvtpkGU5pEx3tKYrchWGwbn3_CDROeklWMIFbBhy5Zoc0IQ6WgqwbB4")}]
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-order", status: 201, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:47 GMT", "content-type": "application/json", "content-length": "598", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/order/62364548/1358562732", "replay-nonce": "0002ZprvP76S-ECQrLUkK-fgjo_KHAZ7ny6Btlk6TU7Ct-I", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:47][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"status": "pending",
"expires": "2019-11-01T03:03:47.913429056Z",
"identifiers": [
{
"type": "dns",
"value": "*.docker.wsw.io"
},
{
"type": "dns",
"value": "*.wsw.io"
},
{
"type": "dns",
"value": "wsw.io"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732"
}
[2019-10-25 11:03:47][acme_client::libs::v2][DEBUG] [订单创建结果][response_data: {"status":"pending","expires":"2019-11-01T03:03:47.913429056Z","identifiers":[{"type":"dns","value":"*.docker.wsw.io"},{"type":"dns","value":"*.wsw.io"},{"type":"dns","value":"wsw.io"}],"authorizations":["https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767","https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768","https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"],"finalize":"https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732"}]
[2019-10-25 11:03:47][acme_client::libs::v2][INFO] [订单创建成功] -> Order successfully created
[2019-10-25 11:03:47][run_s::common::acme::task][INFO] [######][:->8][ACME:验证泛域名证书订单授权挑战][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:47][acme_client::libs::v2][INFO] [循环获取 ACME 订单授权验证] ->[authorizations: ["https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767", "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768", "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"]]
[2019-10-25 11:03:47][acme_client::libs::v2][INFO] [获取 ACME 订单验证挑战方案] -> [authorization: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767"]
[2019-10-25 11:03:48][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:48 GMT", "content-type": "application/json", "content-length": "384", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:48][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"identifier": {
"type": "dns",
"value": "docker.wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"
}
],
"wildcard": true
}
[2019-10-25 11:03:48][acme_client::libs::v2][INFO] [账户订单域名授权验证挑战方案]response.acme_order_auth_response:
AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }
[2019-10-25 11:03:48][acme_client::libs::v2][INFO] [获取 ACME 订单验证挑战方案] -> [authorization: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768"]
[2019-10-25 11:03:49][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:49 GMT", "content-type": "application/json", "content-length": "377", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:49][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"identifier": {
"type": "dns",
"value": "wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww",
"token": "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws"
}
],
"wildcard": true
}
[2019-10-25 11:03:49][acme_client::libs::v2][INFO] [账户订单域名授权验证挑战方案]response.acme_order_auth_response:
AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }
[2019-10-25 11:03:49][acme_client::libs::v2][INFO] [获取 ACME 订单验证挑战方案] -> [authorization: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"]
[2019-10-25 11:03:50][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:03:50 GMT", "content-type": "application/json", "content-length": "781", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:03:50][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"identifier": {
"type": "dns",
"value": "wsw.io"
},
"status": "pending",
"expires": "2019-11-01T03:03:47Z",
"challenges": [
{
"type": "http-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
},
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
},
{
"type": "tls-alpn-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
}
]
}
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [账户订单域名授权验证挑战方案]response.acme_order_auth_response:
AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [ACME 订单授权验证列表] ->[acme_order.order_auth_list: [AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }, AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }, AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [循环计算 ACME 订单授权签名] ->[order_auth_list: [AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }, AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }, AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: docker.wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenges: [AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [为 ACME 订单配置挑战签名] -> [auth_name: wsw.io][order_auth_info: AcmeOrderAuthResponse { status: "pending", expires: "2019-11-01T03:03:47Z", identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }] }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenges: [AcmeOrderAuthorizationChallenge { types: "http-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/aFJFxg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }, AcmeOrderAuthorizationChallenge { types: "tls-alpn-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/cdEsAg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: None, auth_dns_token: None }
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS签名][auth_key_thumbprint: "wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"][auth_key_token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"]
[2019-10-25 11:03:50][acme_client::libs::v2][INFO] [DNS挑战签名][auth_dns_token: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
[2019-10-25 11:03:50][acme_client::libs::v2][DEBUG] [ACME 待验证订单授权签名列表] -> [acme_order_auth_list: [AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }]]
[2019-10-25 11:03:50][run_s::common::acme::task][INFO] [######][:->9][ACME:泛域名证书订单挑战签名并解析DNS-01][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [###]解析记录 -> 批量创建: acme_order_auth_list: [AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }]
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [###]循环解析挑战订单: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") }
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [###]发起TXT解析["docker.wsw.io": Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs")]
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-新建][type: TXT,name: _acme-challenge.docker,value: F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs]
[2019-10-25 11:03:50][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:03:50][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Create -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&sub_domain=_acme-challenge.docker&value=F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs&record_type=TXT&mx=0&ttl=600&record_line=默认
[2019-10-25 11:03:50][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:03:50][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:03:50"},"record":{"id":"475336563","name":"_acme-challenge.docker","status":"enabled","weight":null}}
[2019-10-25 11:03:50][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 399 100 191 100 208 507 553 --:--:-- --:--:-- --:--:-- 1061
[2019-10-25 11:03:50][run_s::common::dns::tool][DEBUG] [###][dns_record_create_result: DnsRecordCreateResult { status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:50" }, record: Some(DnsRecordCreateRecord { id: "475336563", name: "_acme-challenge.docker", status: "enabled" }) }]
[2019-10-25 11:03:50][run_s::common::dns::tool][DEBUG] [dns_status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:50" }][dns_record: DnsRecordCreateRecord { id: "475336563", name: "_acme-challenge.docker", status: "enabled" }]
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-结果][dns_record_id: "475336563"][dns_record_name: "_acme-challenge.docker"][dns_record_status: "enabled"]
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [###]循环解析挑战订单: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:50][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") }
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [###]发起TXT解析["wsw.io": Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A")]
[2019-10-25 11:03:50][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-新建][type: TXT,name: _acme-challenge,value: Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A]
[2019-10-25 11:03:50][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:03:50][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Create -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&sub_domain=_acme-challenge&value=Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A&record_type=TXT&mx=0&ttl=600&record_line=默认
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:03:51"},"record":{"id":"475336569","name":"_acme-challenge","status":"enabled","weight":null}}
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 385 100 184 100 201 554 605 --:--:-- --:--:-- --:--:-- 1156
[2019-10-25 11:03:51][run_s::common::dns::tool][DEBUG] [###][dns_record_create_result: DnsRecordCreateResult { status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:51" }, record: Some(DnsRecordCreateRecord { id: "475336569", name: "_acme-challenge", status: "enabled" }) }]
[2019-10-25 11:03:51][run_s::common::dns::tool][DEBUG] [dns_status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:51" }][dns_record: DnsRecordCreateRecord { id: "475336569", name: "_acme-challenge", status: "enabled" }]
[2019-10-25 11:03:51][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-结果][dns_record_id: "475336569"][dns_record_name: "_acme-challenge"][dns_record_status: "enabled"]
[2019-10-25 11:03:51][run_s::common::acme::tool][DEBUG] [###]循环解析挑战订单: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }
[2019-10-25 11:03:51][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:51][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") }
[2019-10-25 11:03:51][run_s::common::acme::tool][INFO] [###]发起TXT解析["wsw.io": Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4")]
[2019-10-25 11:03:51][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-新建][type: TXT,name: _acme-challenge,value: -0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4]
[2019-10-25 11:03:51][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:03:51][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Create -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&sub_domain=_acme-challenge&value=-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4&record_type=TXT&mx=0&ttl=600&record_line=默认
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:03:51"},"record":{"id":"475336572","name":"_acme-challenge","status":"enabled","weight":null}}
[2019-10-25 11:03:51][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 385 100 184 100 201 494 540 --:--:-- --:--:-- --:--:-- 1034
[2019-10-25 11:03:51][run_s::common::dns::tool][DEBUG] [###][dns_record_create_result: DnsRecordCreateResult { status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:51" }, record: Some(DnsRecordCreateRecord { id: "475336572", name: "_acme-challenge", status: "enabled" }) }]
[2019-10-25 11:03:51][run_s::common::dns::tool][DEBUG] [dns_status: DnsApiStatus { code: "1", message: "Action completed successful", created_at: "2019-10-25 11:03:51" }][dns_record: DnsRecordCreateRecord { id: "475336572", name: "_acme-challenge", status: "enabled" }]
[2019-10-25 11:03:51][run_s::common::acme::tool][INFO] [(DNS-TXT)域名解析记录-结果][dns_record_id: "475336572"][dns_record_name: "_acme-challenge"][dns_record_status: "enabled"]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [批量解析延时等待 3 秒生效...]
[2019-10-25 11:03:54][run_s::common::acme::task][INFO] [######][:->10][ACME:验证域名服务商批量创建(DNS-TXT)验证记录][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [###]解析记录 -> 批量验证: acme_order_auth_list: [AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [###]验证TXT解析签名: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") }
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [###]待验证TXT解析名["_acme-challenge.docker.wsw.io": "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [循环延时(DNS-TXT)验证批次][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.docker.wsw.io"][acme_order_auth_dns_token: "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"],尝试延时验证批次[try_ts: 10]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务解析响应数据][TXT][dns_txt_name: Name { is_fqdn: false, labels: [_acme-challenge, docker, wsw, io] }][dns_response: DnsResponse([Message { header: Header { id: 2439, message_type: Response, op_code: Query, authoritative: false, truncation: false, recursion_desired: true, recursion_available: true, authentic_data: false, checking_disabled: false, response_code: 0, query_count: 1, answer_count: 1, name_server_count: 0, additional_count: 1 }, queries: [Query { name: Name { is_fqdn: true, labels: [_acme-challenge, docker, wsw, io] }, query_type: TXT, query_class: IN }], answers: [Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, docker, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[70, 53, 117, 102, 107, 72, 81, 52, 108, 83, 78, 87, 97, 122, 45, 114, 52, 100, 86, 106, 117, 49, 69, 119, 81, 98, 48, 108, 97, 105, 65, 78, 108, 99, 87, 100, 107, 114, 95, 115, 55, 82, 115]] }) }], name_servers: [], additionals: [], sig0: [], edns: Some(Edns { rcode_high: 0, version: 0, dnssec_ok: false, max_payload: 512, options: OPT { options: {} } }) }])]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, docker, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[70, 53, 117, 102, 107, 72, 81, 52, 108, 83, 78, 87, 97, 122, 45, 114, 52, 100, 86, 106, 117, 49, 69, 119, 81, 98, 48, 108, 97, 105, 65, 78, 108, 99, 87, 100, 107, 114, 95, 115, 55, 82, 115]] }) }]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务器TXT解析数据][dns_txt_records: ["F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [(DNS-TXT)验证完成,跳出循环验证请求][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.docker.wsw.io"][acme_order_auth_dns_token: F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs][try_ts: 10]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [###]验证TXT解析签名: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") }
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [###]待验证TXT解析名["_acme-challenge.wsw.io": "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [循环延时(DNS-TXT)验证批次][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.wsw.io"][acme_order_auth_dns_token: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"],尝试延时验证批次[try_ts: 10]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务解析响应数据][TXT][dns_txt_name: Name { is_fqdn: false, labels: [_acme-challenge, wsw, io] }][dns_response: DnsResponse([Message { header: Header { id: 44256, message_type: Response, op_code: Query, authoritative: false, truncation: false, recursion_desired: true, recursion_available: true, authentic_data: false, checking_disabled: false, response_code: 0, query_count: 1, answer_count: 2, name_server_count: 0, additional_count: 1 }, queries: [Query { name: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, query_type: TXT, query_class: IN }], answers: [Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }, Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[45, 48, 90, 79, 76, 109, 120, 119, 77, 95, 120, 108, 54, 51, 68, 54, 57, 48, 97, 73, 82, 109, 70, 55, 106, 67, 66, 73, 69, 79, 81, 77, 109, 107, 71, 65, 55, 52, 119, 51, 102, 90, 52]] }) }], name_servers: [], additionals: [], sig0: [], edns: Some(Edns { rcode_high: 0, version: 0, dnssec_ok: false, max_payload: 512, options: OPT { options: {} } }) }])]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[45, 48, 90, 79, 76, 109, 120, 119, 77, 95, 120, 108, 54, 51, 68, 54, 57, 48, 97, 73, 82, 109, 70, 55, 106, 67, 66, 73, 69, 79, 81, 77, 109, 107, 71, 65, 55, 52, 119, 51, 102, 90, 52]] }) }]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务器TXT解析数据][dns_txt_records: ["Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A", "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [(DNS-TXT)验证完成,跳出循环验证请求][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.wsw.io"][acme_order_auth_dns_token: Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A][try_ts: 10]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [###]验证TXT解析签名: acme_order_auth_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") }
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [###]待验证TXT解析名["_acme-challenge.wsw.io": "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
[2019-10-25 11:03:54][run_s::common::acme::tool][INFO] [循环延时(DNS-TXT)验证批次][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.wsw.io"][acme_order_auth_dns_token: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"],尝试延时验证批次[try_ts: 10]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务解析响应数据][TXT][dns_txt_name: Name { is_fqdn: false, labels: [_acme-challenge, wsw, io] }][dns_response: DnsResponse([Message { header: Header { id: 43488, message_type: Response, op_code: Query, authoritative: false, truncation: false, recursion_desired: true, recursion_available: true, authentic_data: false, checking_disabled: false, response_code: 0, query_count: 1, answer_count: 1, name_server_count: 0, additional_count: 1 }, queries: [Query { name: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, query_type: TXT, query_class: IN }], answers: [Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }], name_servers: [], additionals: [], sig0: [], edns: Some(Edns { rcode_high: 0, version: 0, dnssec_ok: false, max_payload: 512, options: OPT { options: {} } }) }])]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }]
[2019-10-25 11:03:54][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:03:54][run_s::common::acme::tool][DEBUG] [#][域名服务器TXT解析数据][dns_txt_records: ["Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]]
[2019-10-25 11:03:54][run_s::common::acme::tool][ERROR] [(DNS-TXT)验证不匹配][acme_name: wsw.io][acme_order_auth_dns_token: -0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4][dns_txt_records: ["Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]]
[2019-10-25 11:04:04][run_s::common::acme::tool][WARN] [未匹配解析记录值,请耐心等待 10 秒延时验证...]
[2019-10-25 11:04:04][run_s::common::acme::tool][INFO] [循环延时(DNS-TXT)验证批次][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.wsw.io"][acme_order_auth_dns_token: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"],尝试延时验证批次[try_ts: 20]
[2019-10-25 11:04:05][run_s::common::acme::tool][DEBUG] [#][域名服务解析响应数据][TXT][dns_txt_name: Name { is_fqdn: false, labels: [_acme-challenge, wsw, io] }][dns_response: DnsResponse([Message { header: Header { id: 5309, message_type: Response, op_code: Query, authoritative: false, truncation: false, recursion_desired: true, recursion_available: true, authentic_data: false, checking_disabled: false, response_code: 0, query_count: 1, answer_count: 2, name_server_count: 0, additional_count: 1 }, queries: [Query { name: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, query_type: TXT, query_class: IN }], answers: [Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }, Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[45, 48, 90, 79, 76, 109, 120, 119, 77, 95, 120, 108, 54, 51, 68, 54, 57, 48, 97, 73, 82, 109, 70, 55, 106, 67, 66, 73, 69, 79, 81, 77, 109, 107, 71, 65, 55, 52, 119, 51, 102, 90, 52]] }) }], name_servers: [], additionals: [], sig0: [], edns: Some(Edns { rcode_high: 0, version: 0, dnssec_ok: false, max_payload: 512, options: OPT { options: {} } }) }])]
[2019-10-25 11:04:05][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[90, 54, 65, 48, 87, 56, 79, 108, 111, 73, 78, 70, 53, 98, 90, 55, 85, 112, 113, 71, 57, 48, 65, 71, 45, 84, 75, 71, 109, 115, 89, 68, 51, 69, 120, 70, 82, 77, 106, 116, 122, 51, 65]] }) }]
[2019-10-25 11:04:05][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:04:05][run_s::common::acme::tool][TRACE] [#][域名服务响应][dns_answer: Record { name_labels: Name { is_fqdn: true, labels: [_acme-challenge, wsw, io] }, rr_type: TXT, dns_class: IN, ttl: 599, rdata: TXT(TXT { txt_data: [[45, 48, 90, 79, 76, 109, 120, 119, 77, 95, 120, 108, 54, 51, 68, 54, 57, 48, 97, 73, 82, 109, 70, 55, 106, 67, 66, 73, 69, 79, 81, 77, 109, 107, 71, 65, 55, 52, 119, 51, 102, 90, 52]] }) }]
[2019-10-25 11:04:05][run_s::common::acme::tool][TRACE] [#][域名服务记录][TXT.txt_data][txt_str: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
[2019-10-25 11:04:05][run_s::common::acme::tool][DEBUG] [#][域名服务器TXT解析数据][dns_txt_records: ["Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A", "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]]
[2019-10-25 11:04:05][run_s::common::acme::tool][INFO] [(DNS-TXT)验证完成,跳出循环验证请求][acme_name: wsw.io][acme_order_auth_challenge_name: "_acme-challenge.wsw.io"][acme_order_auth_dns_token: -0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4][try_ts: 20]
[2019-10-25 11:04:05][run_s::common::acme::task][INFO] [######][:->11][ACME:已验证域名服务商批量创建(DNS-TXT)验证记录,开始批量发起挑战][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:05][acme_client::libs::v2][INFO] [循环验证 ACME 订单授权签名] ->[acme_order_auth_list: [AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }, AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }]]
[2019-10-25 11:04:05][acme_client::libs::v2][DEBUG] [###]循环处理挑战订单: auth_acme_order_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") } }
[2019-10-25 11:04:05][acme_client::libs::v2][INFO] [###]验证挑战: [order_auth_challenge.url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw"][order_auth_challenge.auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs")]
[2019-10-25 11:04:05][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "docker.wsw.io" }
[2019-10-25 11:04:05][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", token: "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU", wildcard: None, validation_record: None, auth_key_token: Some("EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs") }
[2019-10-25 11:04:05][acme_client::libs::v2][INFO] [挑战验证] -> Triggering dns-01 validation
[2019-10-25 11:04:05][acme_client::libs::v2][DEBUG] validate info: [challenge_token: "F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw][kid: Some("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")][payload_value: {"keyAuthorization":"F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"}]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:05 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0001_RB5QdS8KrZBfcqMJG3GqkvXQK1Wya8X1g_O6yJIvlw", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0001_RB5QdS8KrZBfcqMJG3GqkvXQK1Wya8X1g_O6yJIvlw")]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"keyAuthorization":"F5ufkHQ4lSNWaz-r4dVju1EwQb0laiANlcWdkr_s7Rs"}]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548"), "alg": String("RS256"), "nonce": String("0001_RB5QdS8KrZBfcqMJG3GqkvXQK1Wya8X1g_O6yJIvlw"), "url": String("https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw")}]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: CJom2H22YWqPsLineKGc66aK4nmGLWCUB8nP0XaAWDv6hOwJwLehu8UasQAHeu2ERAnDSpqE0U_FA8X4-W2fds4xWyi0tIHz_D6ArT-t_sqBqaZsFAD32WGpJiRWJX3CCbloHdg8jAhH6WZIteIVxu3kvf6SkNhule-oH2tKElL8lnNYBMS3tBUtLUBEO0J30-gGZW6AQ_4grKeOhAVnEl3F02-Vrs0Vu4qd_hkyZDqugN03Cdzk0ZurIvqSHxdChkbz6lljcjBc6oIUuKpaiuuFPqXU5QKX5OK7qGF5g8N-gsJXlsfEpgFxYaLsTa5UmlywnGRkm8sttFU5OYMnJVsfTAwfJyb7Hz8fu8OoPdArS7TH2vTvbSX-l2L00N7nw0LEI1-ohnH6IlsnQKyN4MW5RbJ02C3cIH6FqmETBxJQU7IWoUhAoSNLhSdNfQNHszw9hGsELMJ6_Re-CXnHalHUzgLEfDUew5msdBApq-o0jKJ9z-3SIqXHl0KoMvHQFmImkpp4geb7AuslGoRBYRKqqTzBsm7WkxKixySOIfPd0CLTXsm7_kzkeKQZYyukPqBKG20wjM19_8trGqvbhGZtESY_FLctrn21uXDnOflz--a-P6jAQe81uhPb6eqbLx1FpTiRVTw4u4mcRVmsfsYJvm0jyRltfN08QXWKMtk]
[2019-10-25 11:04:05][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw][api_payload_jws: {"payload": String("eyJrZXlBdXRob3JpemF0aW9uIjoiRjV1ZmtIUTRsU05XYXotcjRkVmp1MUV3UWIwbGFpQU5sY1dka3JfczdScyJ9"), "signature": String("CJom2H22YWqPsLineKGc66aK4nmGLWCUB8nP0XaAWDv6hOwJwLehu8UasQAHeu2ERAnDSpqE0U_FA8X4-W2fds4xWyi0tIHz_D6ArT-t_sqBqaZsFAD32WGpJiRWJX3CCbloHdg8jAhH6WZIteIVxu3kvf6SkNhule-oH2tKElL8lnNYBMS3tBUtLUBEO0J30-gGZW6AQ_4grKeOhAVnEl3F02-Vrs0Vu4qd_hkyZDqugN03Cdzk0ZurIvqSHxdChkbz6lljcjBc6oIUuKpaiuuFPqXU5QKX5OK7qGF5g8N-gsJXlsfEpgFxYaLsTa5UmlywnGRkm8sttFU5OYMnJVsfTAwfJyb7Hz8fu8OoPdArS7TH2vTvbSX-l2L00N7nw0LEI1-ohnH6IlsnQKyN4MW5RbJ02C3cIH6FqmETBxJQU7IWoUhAoSNLhSdNfQNHszw9hGsELMJ6_Re-CXnHalHUzgLEfDUew5msdBApq-o0jKJ9z-3SIqXHl0KoMvHQFmImkpp4geb7AuslGoRBYRKqqTzBsm7WkxKixySOIfPd0CLTXsm7_kzkeKQZYyukPqBKG20wjM19_8trGqvbhGZtESY_FLctrn21uXDnOflz--a-P6jAQe81uhPb6eqbLx1FpTiRVTw4u4mcRVmsfsYJvm0jyRltfN08QXWKMtk"), "protected": String("eyJraWQiOiJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hY2N0LzYyMzY0NTQ4IiwiYWxnIjoiUlMyNTYiLCJub25jZSI6IjAwMDFfUkI1UWRTOEtyWkJmY3FNSkczR3FrdlhRSzFXeWE4WDFnX082eUpJdmx3IiwidXJsIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvY2hhbGwtdjMvOTI4MjU2NzY3L2x6bWRRdyJ9")}]
[2019-10-25 11:04:06][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:06 GMT", "content-type": "application/json", "content-length": "183", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", "replay-nonce": "01015_Sfin1rJ9z1u02rNxwnLbUIU0JF9DWYg_Ac1_jkjpo", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:06][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"
}
[2019-10-25 11:04:06][acme_client::libs::v2][DEBUG] [MAIN][response.status(): 200 OK][response_value: {"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw","token":"EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"}]
[2019-10-25 11:04:06][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: pending], trying again...
[2019-10-25 11:04:07][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:07 GMT", "content-type": "application/json", "content-length": "183", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:07][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"
}
[2019-10-25 11:04:07][acme_client::libs::v2][DEBUG] [LOOP][response.status(): 200 OK][response_value: {"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw","token":"EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU"}]
[2019-10-25 11:04:07][acme_client::libs::v2][WARN] [challenge validate status: pending]
[2019-10-25 11:04:09][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: pending], trying again...
[2019-10-25 11:04:10][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:10 GMT", "content-type": "application/json", "content-length": "256", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:10][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "valid",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw",
"token": "EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU",
"validationRecord": [
{
"hostname": "docker.wsw.io"
}
]
}
[2019-10-25 11:04:10][acme_client::libs::v2][DEBUG] [LOOP][response.status(): 200 OK][response_value: {"type":"dns-01","status":"valid","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256767/lzmdQw","token":"EcpOYWaZHHTVBCXuwhNXA9w2N6yXu-AJNNaJHZnY3FU","validationRecord":[{"hostname":"docker.wsw.io"}]}]
[2019-10-25 11:04:10][acme_client::libs::v2][WARN] [challenge validate status: pending]
[2019-10-25 11:04:12][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: valid], trying next challenge...
[2019-10-25 11:04:12][acme_client::libs::v2][WARN] [验证完成,跳出循环验证请求][acme_name: wsw.io]
[2019-10-25 11:04:12][acme_client::libs::v2][DEBUG] [###]循环处理挑战订单: auth_acme_order_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") } }
[2019-10-25 11:04:12][acme_client::libs::v2][INFO] [###]验证挑战: [order_auth_challenge.url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww"][order_auth_challenge.auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A")]
[2019-10-25 11:04:12][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:04:12][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", token: "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws", wildcard: None, validation_record: None, auth_key_token: Some("7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A") }
[2019-10-25 11:04:12][acme_client::libs::v2][INFO] [挑战验证] -> Triggering dns-01 validation
[2019-10-25 11:04:12][acme_client::libs::v2][DEBUG] validate info: [challenge_token: "Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww][kid: Some("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")][payload_value: {"keyAuthorization":"Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"}]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:12 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0102JuTeVKOHs5CmyGaAnvU6hcWO2gUIOGUATWawjwZ1tM4", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0102JuTeVKOHs5CmyGaAnvU6hcWO2gUIOGUATWawjwZ1tM4")]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"keyAuthorization":"Z6A0W8OloINF5bZ7UpqG90AG-TKGmsYD3ExFRMjtz3A"}]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"nonce": String("0102JuTeVKOHs5CmyGaAnvU6hcWO2gUIOGUATWawjwZ1tM4"), "url": String("https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww"), "alg": String("RS256"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")}]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: 3QCb5PeASoHSfuyeetKx-N7mNdybE006DCEm9qlBYNgUjkoICgB96HS0CcwhTPq2MLc4vGjrAsCmEBUY5KzqM9I0Epf104ocKSoPHVyZwrSR9hH6YE1Eb4KLViRmKaZmGHmeR8Cu8_RsjCbRYwd5hDjHN-mtQw9CjwhxXAHLTAy_dJU5pO8duZY90VOrm7da5PWeRfNemqOJanbphtOXhY6af2UX38hFVwIAi2Lw6HBFRpdkfTXoU16MUW5GfbXMLLeiE1OYMKHaRka6RcSmakwX4-s7kym1_a2SjjM9KFDvX4vs-wyt_jJ1x8hfO21MJ-lJpX9DqAzUCx0lP-814RDG2h-corraOx5vx46I51I4XtlEKz3mgQTV010cWwSXxQHE4eID7K4MpSm1bTqLHBKkLqTRUocYGq3TELkzDPTRltgNLcP0jtpAsfKT7wPbxmqOujeoKeNW4Afhn8jm5-QMwO3UJuGEUoywYTr_xioJpPced0qnDf8BnM1aLvQkrK7Kqp9ahIApJ88E2WEjt8gQsYfL-77K17h9WvJ0ZNjHLvZ60mOHe7Yet-1vQHfrt3jaJb-naM6SFsI6mvu86VawmjVLH9VnuxcI7w-tZEtQS26J0eLsjvydvDPP336oZ3JO3R_75Xqym2n2ED1tvH-cgVf7BVhRYc2WoxKsKQQ]
[2019-10-25 11:04:12][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww][api_payload_jws: {"payload": String("eyJrZXlBdXRob3JpemF0aW9uIjoiWjZBMFc4T2xvSU5GNWJaN1VwcUc5MEFHLVRLR21zWUQzRXhGUk1qdHozQSJ9"), "signature": String("3QCb5PeASoHSfuyeetKx-N7mNdybE006DCEm9qlBYNgUjkoICgB96HS0CcwhTPq2MLc4vGjrAsCmEBUY5KzqM9I0Epf104ocKSoPHVyZwrSR9hH6YE1Eb4KLViRmKaZmGHmeR8Cu8_RsjCbRYwd5hDjHN-mtQw9CjwhxXAHLTAy_dJU5pO8duZY90VOrm7da5PWeRfNemqOJanbphtOXhY6af2UX38hFVwIAi2Lw6HBFRpdkfTXoU16MUW5GfbXMLLeiE1OYMKHaRka6RcSmakwX4-s7kym1_a2SjjM9KFDvX4vs-wyt_jJ1x8hfO21MJ-lJpX9DqAzUCx0lP-814RDG2h-corraOx5vx46I51I4XtlEKz3mgQTV010cWwSXxQHE4eID7K4MpSm1bTqLHBKkLqTRUocYGq3TELkzDPTRltgNLcP0jtpAsfKT7wPbxmqOujeoKeNW4Afhn8jm5-QMwO3UJuGEUoywYTr_xioJpPced0qnDf8BnM1aLvQkrK7Kqp9ahIApJ88E2WEjt8gQsYfL-77K17h9WvJ0ZNjHLvZ60mOHe7Yet-1vQHfrt3jaJb-naM6SFsI6mvu86VawmjVLH9VnuxcI7w-tZEtQS26J0eLsjvydvDPP336oZ3JO3R_75Xqym2n2ED1tvH-cgVf7BVhRYc2WoxKsKQQ"), "protected": String("eyJub25jZSI6IjAxMDJKdVRlVktPSHM1Q215R2FBbnZVNmhjV08yZ1VJT0dVQVRXYXdqd1oxdE00IiwidXJsIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvY2hhbGwtdjMvOTI4MjU2NzY4L05MWGd3dyIsImFsZyI6IlJTMjU2Iiwia2lkIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYWNjdC82MjM2NDU0OCJ9")}]
[2019-10-25 11:04:13][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:13 GMT", "content-type": "application/json", "content-length": "183", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", "replay-nonce": "0002r8sYZbLbcHLyLTvx3st4sb8EJV14PsYkROPmItnR5YE", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:13][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww",
"token": "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws"
}
[2019-10-25 11:04:13][acme_client::libs::v2][DEBUG] [MAIN][response.status(): 200 OK][response_value: {"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww","token":"7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws"}]
[2019-10-25 11:04:13][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: pending], trying again...
[2019-10-25 11:04:14][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:14 GMT", "content-type": "application/json", "content-length": "249", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:14][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "valid",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww",
"token": "7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws",
"validationRecord": [
{
"hostname": "wsw.io"
}
]
}
[2019-10-25 11:04:14][acme_client::libs::v2][DEBUG] [LOOP][response.status(): 200 OK][response_value: {"type":"dns-01","status":"valid","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256768/NLXgww","token":"7lFC3XKzKykMnWsdMp27IWib4oPrM1HbYHt86lYexws","validationRecord":[{"hostname":"wsw.io"}]}]
[2019-10-25 11:04:14][acme_client::libs::v2][WARN] [challenge validate status: pending]
[2019-10-25 11:04:16][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: valid], trying next challenge...
[2019-10-25 11:04:16][acme_client::libs::v2][WARN] [验证完成,跳出循环验证请求][acme_name: wsw.io]
[2019-10-25 11:04:16][acme_client::libs::v2][DEBUG] [###]循环处理挑战订单: auth_acme_order_data: AcmeOrderAuthData { order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }, order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") } }
[2019-10-25 11:04:16][acme_client::libs::v2][INFO] [###]验证挑战: [order_auth_challenge.url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg"][order_auth_challenge.auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4")]
[2019-10-25 11:04:16][acme_client::libs::v2][DEBUG] [####] order_auth_identifier: AcmeOrderIdentifier { types: "dns", value: "wsw.io" }
[2019-10-25 11:04:16][acme_client::libs::v2][DEBUG] [####] order_auth_challenge: AcmeOrderAuthorizationChallenge { types: "dns-01", status: "pending", url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", token: "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8", wildcard: None, validation_record: None, auth_key_token: Some("LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8.wOaw5_YfUW_kqfcSohkSmByWsQ8BokfcqQ3QkUyV8qQ"), auth_dns_token: Some("-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4") }
[2019-10-25 11:04:16][acme_client::libs::v2][INFO] [挑战验证] -> Triggering dns-01 validation
[2019-10-25 11:04:16][acme_client::libs::v2][DEBUG] validate info: [challenge_token: "-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"]
[2019-10-25 11:04:16][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg][kid: Some("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")][payload_value: {"keyAuthorization":"-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"}]
[2019-10-25 11:04:16][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:17 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0101GYUKCdYz7TphUjaLXAQbq6saJBN5nzl16jmIoIgqm_I", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0101GYUKCdYz7TphUjaLXAQbq6saJBN5nzl16jmIoIgqm_I")]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"keyAuthorization":"-0ZOLmxwM_xl63D690aIRmF7jCBIEOQMmkGA74w3fZ4"}]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"url": String("https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548"), "alg": String("RS256"), "nonce": String("0101GYUKCdYz7TphUjaLXAQbq6saJBN5nzl16jmIoIgqm_I")}]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: ZoktdKjyKgr0kf7Kv8lQToTyhqg3ujf17ml011X-OW6qn7MHagTa1vVcQn7oxtPwh8tml3_SEBbtqURUQu0l5pJTQllxMxqARUNpLiAO1AFWGfw_0H-VEUP5vmqv0ZoJ5qR098sCFgw9I1az6kvQr6DFxe0_Lj6uvofMvRmtIyA1b8lFMU449I1smRItADPqOYqISqaItsmEqzKgFBP80SkFZltVA9v3hJEXSbCl47ZYaa8tgA_6siB6h4PMWhv4GqVupiICpJZePiTMPNHYGncWm_uFepmNDdS_UMA3L4pbMH0bAp6pjPsASfEkCUu9ELgN-JXHwJRkDSZLvSTNTcrOso_9PK8BuV1u1dc7qa_b_AzY_CPgGcVz_H3yqSG3kbrM5e2qPZYIsAfPeH6BDMCSUrSizwAd9uXo0-KUDpBp9GN3aMG2JNR8TEZYePOR1JWUUeDMyig_xqY7dl5IGVS5l8hNyWjLnHBE1x-BZjHe1dUkRlk329jg1h-ER3r9k7upew0wU0cwzAXhC7EFgPCJnmZhT5uegn7Ht5bCJNXw30xyoOT-Ee4M1B_zwUmejaFn5dZ4lNZklRBJS_GaCbE8cXsQy3ZR8W6sZ8gAfB9VBS6cQFnpIytipDCYkkpCQNCwnsUQjtrqiCf-bYlWVaLVA1sgQsw1tiWqUevzYvE]
[2019-10-25 11:04:17][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg][api_payload_jws: {"payload": String("eyJrZXlBdXRob3JpemF0aW9uIjoiLTBaT0xteHdNX3hsNjNENjkwYUlSbUY3akNCSUVPUU1ta0dBNzR3M2ZaNCJ9"), "protected": String("eyJ1cmwiOiJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9jaGFsbC12My85MjgyNTY3NjkvS1dxZ3lnIiwia2lkIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYWNjdC82MjM2NDU0OCIsImFsZyI6IlJTMjU2Iiwibm9uY2UiOiIwMTAxR1lVS0NkWXo3VHBoVWphTFhBUWJxNnNhSkJONW56bDE2am1Jb0lncW1fSSJ9"), "signature": String("ZoktdKjyKgr0kf7Kv8lQToTyhqg3ujf17ml011X-OW6qn7MHagTa1vVcQn7oxtPwh8tml3_SEBbtqURUQu0l5pJTQllxMxqARUNpLiAO1AFWGfw_0H-VEUP5vmqv0ZoJ5qR098sCFgw9I1az6kvQr6DFxe0_Lj6uvofMvRmtIyA1b8lFMU449I1smRItADPqOYqISqaItsmEqzKgFBP80SkFZltVA9v3hJEXSbCl47ZYaa8tgA_6siB6h4PMWhv4GqVupiICpJZePiTMPNHYGncWm_uFepmNDdS_UMA3L4pbMH0bAp6pjPsASfEkCUu9ELgN-JXHwJRkDSZLvSTNTcrOso_9PK8BuV1u1dc7qa_b_AzY_CPgGcVz_H3yqSG3kbrM5e2qPZYIsAfPeH6BDMCSUrSizwAd9uXo0-KUDpBp9GN3aMG2JNR8TEZYePOR1JWUUeDMyig_xqY7dl5IGVS5l8hNyWjLnHBE1x-BZjHe1dUkRlk329jg1h-ER3r9k7upew0wU0cwzAXhC7EFgPCJnmZhT5uegn7Ht5bCJNXw30xyoOT-Ee4M1B_zwUmejaFn5dZ4lNZklRBJS_GaCbE8cXsQy3ZR8W6sZ8gAfB9VBS6cQFnpIytipDCYkkpCQNCwnsUQjtrqiCf-bYlWVaLVA1sgQsw1tiWqUevzYvE")}]
[2019-10-25 11:04:18][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:17 GMT", "content-type": "application/json", "content-length": "183", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", "replay-nonce": "0002mcrCcayGiu1Mvm3eN3r6_kvVUQRyToYLB-WqfL9eo-E", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:18][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"
}
[2019-10-25 11:04:18][acme_client::libs::v2][DEBUG] [MAIN][response.status(): 200 OK][response_value: {"type":"dns-01","status":"pending","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg","token":"LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8"}]
[2019-10-25 11:04:18][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: pending], trying again...
[2019-10-25 11:04:18][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:18 GMT", "content-type": "application/json", "content-length": "249", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "link": "<https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769>;rel=\"up\"", "location": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:18][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"type": "dns-01",
"status": "valid",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg",
"token": "LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8",
"validationRecord": [
{
"hostname": "wsw.io"
}
]
}
[2019-10-25 11:04:18][acme_client::libs::v2][DEBUG] [LOOP][response.status(): 200 OK][response_value: {"type":"dns-01","status":"valid","url":"https://acme-v02.api.letsencrypt.org/acme/chall-v3/928256769/KWqgyg","token":"LK6Dgr6Xk9lYLBHRC2DImJRyKVCxa3v9x3owinbEbc8","validationRecord":[{"hostname":"wsw.io"}]}]
[2019-10-25 11:04:18][acme_client::libs::v2][WARN] [challenge validate status: pending]
[2019-10-25 11:04:20][acme_client::libs::v2][INFO] [循环挑战验证状态] -> [challenge validate status: valid], trying next challenge...
[2019-10-25 11:04:20][acme_client::libs::v2][WARN] [验证完成,跳出循环验证请求][acme_name: wsw.io]
[2019-10-25 11:04:20][run_s::common::acme::task][WARN] [验证完成,跳出循环验证请求][acme_name: wsw.io][acme_account_order_verify: 挑战列表验证成功!]
[2019-10-25 11:04:20][run_s::common::acme::task][INFO] [######][:->12][ACME:已验证域名服务商批量创建(DNS-TXT)验证记录,清除域名解析记录][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:20][run_s::common::acme::tool][INFO] [删除(DNS-TXT)域名解析记录][domain_record[acme_dns_txt_record_id: 475336563]
[2019-10-25 11:04:20][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:04:20][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Remove -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&record_id=475336563
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:04:21"}}
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 98 100 96 202 197 --:--:-- --:--:-- --:--:-- 400
[2019-10-25 11:04:21][run_s::common::acme::tool][INFO] [删除(DNS-TXT)域名解析记录][domain_record[acme_dns_txt_record_id: 475336569]
[2019-10-25 11:04:21][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:04:21][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Remove -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&record_id=475336569
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:04:21"}}
[2019-10-25 11:04:21][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 98 100 96 273 268 --:--:-- --:--:-- --:--:-- 541
[2019-10-25 11:04:21][run_s::common::acme::tool][INFO] [删除(DNS-TXT)域名解析记录][domain_record[acme_dns_txt_record_id: 475336572]
[2019-10-25 11:04:21][run_s::common::tools][INFO] #[执行命令: run_command(...)][cmd_rs_path: "/data/home/coam/Server/Run/run_s"][cmd_rs_envs: {}]...
[2019-10-25 11:04:21][run_s::common::tools][INFO] #> curl -X POST https://dnsapi.cn/Record.Remove -d login_token=72921,303e442575de36c5b854c9eb95da2106&format=json&domain=wsw.io&record_id=475336572
[2019-10-25 11:04:22][run_s::common::tools][DEBUG] command run status: exit code: 0
[2019-10-25 11:04:22][run_s::common::tools][DEBUG] command run stdout: {"status":{"code":"1","message":"Action completed successful","created_at":"2019-10-25 11:04:21"}}
[2019-10-25 11:04:22][run_s::common::tools][DEBUG] command run stderr: % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194 100 98 100 96 311 304 --:--:-- --:--:-- --:--:-- 615
[2019-10-25 11:04:22][run_s::common::acme::task][INFO] [######][:->13][ACME:创建泛域名CSR证书][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:22][run_s::common::acme::task][INFO] [######][:->14][ACME:发送泛域名CSR证书验证确认回执][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [ACME接口请求参数->request()][request_acme_resource: https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732][kid: Some("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")][payload_value: {"csr":"MIIClTCCAX0CAQAwETEPMA0GA1UEAwwGd3N3LmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1qy-s2Gyxkn-mlrjpJroQ3-tEZ0FSSK39hYHp20Q2t2mSPMrGrglOryiW93tHp6KFPoWCgh8TwKNfGNQ_83aGHvaVPgCgpFNs089EfJF7G-FHrL7VOXf6mj7yrxAhYkQiZwS23SGyRSE3Tp7t2S76jksg-i8QDfhthEZrxWcPBctKh-M509b1uiQKQ85it13pebbIYwZLRJBu7EvkfAfMRGBmFzd-CdtPKcDK1Elh4qGHhIdXKdid-qsGoM5BemacajAqWbGZqwKuxfrTspw8mmbQnYo97JHAhpI4tvjIG1QUzJ2KNRg1e4MmCiAKIwE9VjYayg9j0Zr8l_LeH1-_wIDAQABoD8wPQYJKoZIhvcNAQkOMTAwLjAsBgNVHREEJTAjggZ3c3cuaW-CCCoud3N3Lmlvgg8qLmRvY2tlci53c3cuaW8wDQYJKoZIhvcNAQELBQADggEBALdIGuPw96PlcPHIKl_b-38tmHpKgxqUok0zkt_hzIyKcEDUvk92JcbHzDdnI6UmPIdijKYr6ZscQPtErFGbntzLKZ-v2A_B4gFKVLQU8H2qb3FUQzBVDuOLjnMwzI3Mj6xWGTAvRh3I07Pa6SoC_Ckw_yGoZTcE-O1op7ci1JGngpfdVvulLKfZvtafu9YqD8bJzTD2O6_XKMaJ8yglPkLvv7sz_bnxe-vDlsOoTErp-N1nG-olRUCosCPATq1lzHAenJlGhdR6L0BiFcW3SdHntcj3KXFznCXCEiCFBlzMBieKukLmBLko7JnssQIaGw9yaqRCkev3LfELUQ4LNyI"}]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [获取临时授权凭证->get_nonce()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/new-nonce]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/new-nonce", status: 204, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:22 GMT", "connection": "keep-alive", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "replay-nonce": "0102tjrbII5vW5Yj0mIcPfEkjVq_GtsJgX8yx-YHcBogyb4", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [获取请求凭证->get_nonce()][nonce: Ok("0102tjrbII5vW5Yj0mIcPfEkjVq_GtsJgX8yx-YHcBogyb4")]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口请求地址->request()->jws()][request_acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][payload: {"csr":"MIIClTCCAX0CAQAwETEPMA0GA1UEAwwGd3N3LmlvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1qy-s2Gyxkn-mlrjpJroQ3-tEZ0FSSK39hYHp20Q2t2mSPMrGrglOryiW93tHp6KFPoWCgh8TwKNfGNQ_83aGHvaVPgCgpFNs089EfJF7G-FHrL7VOXf6mj7yrxAhYkQiZwS23SGyRSE3Tp7t2S76jksg-i8QDfhthEZrxWcPBctKh-M509b1uiQKQ85it13pebbIYwZLRJBu7EvkfAfMRGBmFzd-CdtPKcDK1Elh4qGHhIdXKdid-qsGoM5BemacajAqWbGZqwKuxfrTspw8mmbQnYo97JHAhpI4tvjIG1QUzJ2KNRg1e4MmCiAKIwE9VjYayg9j0Zr8l_LeH1-_wIDAQABoD8wPQYJKoZIhvcNAQkOMTAwLjAsBgNVHREEJTAjggZ3c3cuaW-CCCoud3N3Lmlvgg8qLmRvY2tlci53c3cuaW8wDQYJKoZIhvcNAQELBQADggEBALdIGuPw96PlcPHIKl_b-38tmHpKgxqUok0zkt_hzIyKcEDUvk92JcbHzDdnI6UmPIdijKYr6ZscQPtErFGbntzLKZ-v2A_B4gFKVLQU8H2qb3FUQzBVDuOLjnMwzI3Mj6xWGTAvRh3I07Pa6SoC_Ckw_yGoZTcE-O1op7ci1JGngpfdVvulLKfZvtafu9YqD8bJzTD2O6_XKMaJ8yglPkLvv7sz_bnxe-vDlsOoTErp-N1nG-olRUCosCPATq1lzHAenJlGhdR6L0BiFcW3SdHntcj3KXFznCXCEiCFBlzMBieKukLmBLko7JnssQIaGw9yaqRCkev3LfELUQ4LNyI"}]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名参数->request()->jws()][protected: {"url": String("https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732"), "alg": String("RS256"), "nonce": String("0102tjrbII5vW5Yj0mIcPfEkjVq_GtsJgX8yx-YHcBogyb4"), "kid": String("https://acme-v02.api.letsencrypt.org/acme/acct/62364548")}]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [接口签名结果->request()->jws()][signature: NRlIx37BdqBKRg-j9K9XiXr2bsb6w-qGOIevnXGXWnucB1rl4gaPDaz1IoGADYUX4wSzeJJhzeB29Z36K91U9fKFDFhA0CAKhFMUpmN2qyY151NAsyYKexdRU6Qmi3EcczCcN9R0ImT5ugpnhXD_3_PbNAYIh196N1FE7OouwvMcPV8Gx16nDeseldFJ39AbfIrVzR76HzbgTop7kQbvZ5KLuzAy56t9mm6WB_63zSTGwKERk7uV2UDVv8P-LckxZiNKjWVs9Y1N6I2EqE7reqmnIoL_576_nOPu0HrkvRSIeCku3AU8YAYbGauLmo8QmLWSRGKUClRq9XbkG0TvhMSodc0tixzUTXh6PSH7Y1d-_pDlynm0G9gwULjqoe5_G5dVwwTRRYgVRYotLdFXdVahyeW2RwwXogpzmVzWUu55UkWct9cwg82lliVMgvkKeBXDIZTvDO9T_s4JMEEw_G3lZf-TAr4Eyd_Rm7gYuKekqdegDDyWba4Kmn1r9-5q0JCtECT-Vimw0qhumUmZi97hytj30EABD9WeCHLByXQ4knVJbkADp26_409HqXWh2emrxgNZ2RB9WE6tNRXy59HA_cHqilHL6aAvWs32mVZCpbdlSJQMq1oDtnyGgOnTVx4Bu3UK_7Z5XcOZ9Whnjme4K9oRu0O0KOtInE54HSk]
[2019-10-25 11:04:22][acme_client::libs::v2][TRACE] [发起请求->request()][acme_resource_api: https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732][api_payload_jws: {"signature": String("NRlIx37BdqBKRg-j9K9XiXr2bsb6w-qGOIevnXGXWnucB1rl4gaPDaz1IoGADYUX4wSzeJJhzeB29Z36K91U9fKFDFhA0CAKhFMUpmN2qyY151NAsyYKexdRU6Qmi3EcczCcN9R0ImT5ugpnhXD_3_PbNAYIh196N1FE7OouwvMcPV8Gx16nDeseldFJ39AbfIrVzR76HzbgTop7kQbvZ5KLuzAy56t9mm6WB_63zSTGwKERk7uV2UDVv8P-LckxZiNKjWVs9Y1N6I2EqE7reqmnIoL_576_nOPu0HrkvRSIeCku3AU8YAYbGauLmo8QmLWSRGKUClRq9XbkG0TvhMSodc0tixzUTXh6PSH7Y1d-_pDlynm0G9gwULjqoe5_G5dVwwTRRYgVRYotLdFXdVahyeW2RwwXogpzmVzWUu55UkWct9cwg82lliVMgvkKeBXDIZTvDO9T_s4JMEEw_G3lZf-TAr4Eyd_Rm7gYuKekqdegDDyWba4Kmn1r9-5q0JCtECT-Vimw0qhumUmZi97hytj30EABD9WeCHLByXQ4knVJbkADp26_409HqXWh2emrxgNZ2RB9WE6tNRXy59HA_cHqilHL6aAvWs32mVZCpbdlSJQMq1oDtnyGgOnTVx4Bu3UK_7Z5XcOZ9Whnjme4K9oRu0O0KOtInE54HSk"), "payload": String("eyJjc3IiOiJNSUlDbFRDQ0FYMENBUUF3RVRFUE1BMEdBMVVFQXd3R2QzTjNMbWx2TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUExcXktczJHeXhrbi1tbHJqcEpyb1EzLXRFWjBGU1NLMzloWUhwMjBRMnQybVNQTXJHcmdsT3J5aVc5M3RIcDZLRlBvV0NnaDhUd0tOZkdOUV84M2FHSHZhVlBnQ2dwRk5zMDg5RWZKRjdHLUZIckw3Vk9YZjZtajd5cnhBaFlrUWlad1MyM1NHeVJTRTNUcDd0MlM3Nmprc2ctaThRRGZodGhFWnJ4V2NQQmN0S2gtTTUwOWIxdWlRS1E4NWl0MTNwZWJiSVl3WkxSSkJ1N0V2a2ZBZk1SR0JtRnpkLUNkdFBLY0RLMUVsaDRxR0hoSWRYS2RpZC1xc0dvTTVCZW1hY2FqQXFXYkdacXdLdXhmclRzcHc4bW1iUW5Zbzk3SkhBaHBJNHR2aklHMVFVekoyS05SZzFlNE1tQ2lBS0l3RTlWallheWc5ajBacjhsX0xlSDEtX3dJREFRQUJvRDh3UFFZSktvWklodmNOQVFrT01UQXdMakFzQmdOVkhSRUVKVEFqZ2daM2MzY3VhVy1DQ0NvdWQzTjNMbWx2Z2c4cUxtUnZZMnRsY2k1M2MzY3VhVzh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUxkSUd1UHc5NlBsY1BISUtsX2ItMzh0bUhwS2d4cVVvazB6a3RfaHpJeUtjRURVdms5MkpjYkh6RGRuSTZVbVBJZGlqS1lyNlpzY1FQdEVyRkdibnR6TEtaLXYyQV9CNGdGS1ZMUVU4SDJxYjNGVVF6QlZEdU9Mam5Nd3pJM01qNnhXR1RBdlJoM0kwN1BhNlNvQ19Da3dfeUdvWlRjRS1PMW9wN2NpMUpHbmdwZmRWdnVsTEtmWnZ0YWZ1OVlxRDhiSnpURDJPNl9YS01hSjh5Z2xQa0x2djdzel9ibnhlLXZEbHNPb1RFcnAtTjFuRy1vbFJVQ29zQ1BBVHExbHpIQWVuSmxHaGRSNkwwQmlGY1czU2RIbnRjajNLWEZ6bkNYQ0VpQ0ZCbHpNQmllS3VrTG1CTGtvN0puc3NRSWFHdzl5YXFSQ2tldjNMZkVMVVE0TE55SSJ9"), "protected": String("eyJ1cmwiOiJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9maW5hbGl6ZS82MjM2NDU0OC8xMzU4NTYyNzMyIiwiYWxnIjoiUlMyNTYiLCJub25jZSI6IjAxMDJ0anJiSUk1dlc1WWowbUljUGZFa2pWcV9HdHNKZ1g4eXgtWUhjQm9neWI0Iiwia2lkIjoiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYWNjdC82MjM2NDU0OCJ9")}]
[2019-10-25 11:04:24][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-INFO]:
Response { url: "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732", status: 200, headers: {"server": "nginx", "date": "Fri, 25 Oct 2019 03:04:23 GMT", "content-type": "application/json", "content-length": "690", "connection": "keep-alive", "boulder-requester": "62364548", "cache-control": "public, max-age=0, no-cache", "link": "<https://acme-v02.api.letsencrypt.org/directory>;rel=\"index\"", "location": "https://acme-v02.api.letsencrypt.org/acme/order/62364548/1358562732", "replay-nonce": "0002F2RDkVTV1uN9UyBkfQ4X9c9z8hQheEFvnHSIMmGn1gs", "x-frame-options": "DENY", "strict-transport-security": "max-age=604800"} }
[2019-10-25 11:04:24][acme_client::libs::v2][TRACE] [ACME-API-RESPONSE-CONTENT]:
{
"status": "valid",
"expires": "2019-11-01T03:03:47Z",
"identifiers": [
{
"type": "dns",
"value": "*.docker.wsw.io"
},
{
"type": "dns",
"value": "*.wsw.io"
},
{
"type": "dns",
"value": "wsw.io"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256767",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256768",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/928256769"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/62364548/1358562732",
"certificate": "https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675"
}
[2019-10-25 11:04:24][acme_client::libs::v2][INFO] [#][ACME订单核发的证书签发地址][acme_order_response.certificate: Some("https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675")]
[2019-10-25 11:04:24][run_s::common::acme::task][INFO] [######][:->15][ACME:获取泛域名签名证书][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:24][acme_client::libs::v2][INFO] [验证订单签发证书流程] -> Signing certificate
[2019-10-25 11:04:24][acme_client::libs::v2][DEBUG] [获取已签发订单域名证书][certificate_url: "https://acme-v02.api.letsencrypt.org/acme/cert/031a4d8bb154e8b731eb689b26ef22b8a675"]
[2019-10-25 11:04:24][acme_client::libs::v2][INFO] [###]签发域名证书:
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgISAxpNi7FU6Lcx62ibJu8iuKZ1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xOTEwMjUwMjA0MjNaFw0y
MDAxMjMwMjA0MjNaMBExDzANBgNVBAMTBndzdy5pbzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANasvrNhssZJ/ppa46Sa6EN/rRGdBUkit/YWB6dtENrd
pkjzKxq4JTq8olvd7R6eihT6FgoIfE8CjXxjUP/N2hh72lT4AoKRTbNPPRHyRexv
hR6y+1Tl3+po+8q8QIWJEImcEtt0hskUhN06e7dku+o5LIPovEA34bYRGa8VnDwX
LSofjOdPW9bokCkPOYrdd6Xm2yGMGS0SQbuxL5HwHzERgZhc3fgnbTynAytRJYeK
hh4SHVynYnfqrBqDOQXpmnGowKlmxmasCrsX607KcPJpm0J2KPeyRwIaSOLb4yBt
UFMydijUYNXuDJgogCiMBPVY2GsoPY9Ga/Jfy3h9fv8CAwEAAaOCAncwggJzMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYD
VR0TAQH/BAIwADAdBgNVHQ4EFgQUKVfx4HzziSt6P/WCk4nuJHSPdPkwHwYDVR0j
BBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBhMC4GCCsG
AQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3JnMC8GCCsG
AQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3JnLzAsBgNV
HREEJTAjgg8qLmRvY2tlci53c3cuaW+CCCoud3N3LmlvggZ3c3cuaW8wTAYDVR0g
BEUwQzAIBgZngQwBAgEwNwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0
cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEA
dwCyHgXMi6LNiiBOh2b5K7mKJSBna9r6cOeySVMt74uQXgAAAW4A30oqAAAEAwBI
MEYCIQCIWgzZtE/EuwBGQjFBcZI30lg0wKEYWm/TRcKeLF/CQgIhAPt5AXThfoSS
pjFz/ME8ESpvy0/c9gQEHKwuyHcQNi4eAHYAb1N2rDHwMRnYmQCkURX/dxUcEdkC
wQApBo2yCJo32RMAAAFuAN9KUwAABAMARzBFAiBofVWPD+MruP04x5YhsexJ3vyT
pHYyKrPlVhhs0If8FwIhANMn04N/VsM2+mMM0MH1Ght6wA0CAxy1N2TzdeEWybnj
MA0GCSqGSIb3DQEBCwUAA4IBAQAPvcfKg3ufCmKMEUaNfV22KuZRcWfdk0zrxNaV
SpEdCT5SlRH53gvnkNgOdgKCJEdYcK/OuNCkfkYouHjCj1O8GG1Ip+aiG5lFBfPe
eWfurZP6MuFRehyS4UphxDPx5hmYi0zqaUcY3Oqh0sfMfhwpmGsSWm/cVvAdvg82
kHuBdWSlwpfhdmiNi8QXQx3Kzmfx/Gdfl/CKK4FqHzEUNwnngGPzP1yvTWs0d03N
QqRgUJ40g+HLCmvyl0KFhBk22qaVNNMjDzZojwmmMRERT613zpGVvq3Bg4ynhhvv
b7BhRp4Itpz4zJKpMkSfLsr0FF0m2TCT+hsE8D8EDAL/0mDV
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
[2019-10-25 11:04:24][acme_client::libs::v2][INFO] [域名证书签发成功]........................................................................................
[2019-10-25 11:04:25][run_s::common::acme::task][INFO] [已签发域名证书][ACME][authorization][acme_name: wsw.io][acme_wildcards: ["wsw.io", "*.wsw.io", "*.docker.wsw.io"]]!
[2019-10-25 11:04:25][run_s::common::acme::task][INFO] [完成证书文件下单更新结果:完成!]
[acme_order: Ok(())]
[2019-10-25 11:04:25][run_s::common::acme::task][INFO] [######][:->16][ACME:泛域名证书签发完成!][acme_name: "wsw.io"]--------------------------------------------------------------------------------------
[2019-10-25 11:04:25][run_s][INFO] acme run [=======================================================================================================================================]
Comments