{"id":946,"date":"2021-03-06T10:54:36","date_gmt":"2021-03-06T02:54:36","guid":{"rendered":"https:\/\/www.linuxdevops.cn\/?p=946"},"modified":"2021-03-06T10:54:36","modified_gmt":"2021-03-06T02:54:36","slug":"acme-sh-automatically-generate-free-certificates-from","status":"publish","type":"post","link":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/","title":{"rendered":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66."},"content":{"rendered":"

acme.sh<\/strong> \u5b9e\u73b0\u4e86 acme<\/code> \u534f\u8bae, \u53ef\u4ee5\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66.<\/p>\n

\u4e3b\u8981\u6b65\u9aa4:<\/p>\n

    \n
  1. \u5b89\u88c5 acme.sh<\/strong><\/li>\n
  2. \u751f\u6210\u8bc1\u4e66<\/li>\n
  3. copy \u8bc1\u4e66\u5230 nginx\/apache \u6216\u8005\u5176\u4ed6\u670d\u52a1<\/li>\n
  4. \u66f4\u65b0\u8bc1\u4e66<\/li>\n
  5. \u66f4\u65b0 acme.sh<\/strong><\/li>\n
  6. \u51fa\u9519\u600e\u4e48\u529e, \u5982\u4f55\u8c03\u8bd5<\/li>\n<\/ol>\n

    \u4e0b\u9762\u8be6\u7ec6\u4ecb\u7ecd.<\/p>\n

    1. \u5b89\u88c5 acme.sh<\/strong><\/h1>\n

    \u5b89\u88c5\u5f88\u7b80\u5355, \u4e00\u4e2a\u547d\u4ee4:<\/p>\n

    curl  https:\/\/get.acme.sh | sh<\/code><\/pre>\n

    \u666e\u901a\u7528\u6237\u548c root \u7528\u6237\u90fd\u53ef\u4ee5\u5b89\u88c5\u4f7f\u7528. \u5b89\u88c5\u8fc7\u7a0b\u8fdb\u884c\u4e86\u4ee5\u4e0b\u51e0\u6b65:<\/p>\n

      \n
    1. \u628a acme.sh \u5b89\u88c5\u5230\u4f60\u7684 home<\/strong> \u76ee\u5f55\u4e0b:<\/li>\n<\/ol>\n
      ~\/.acme.sh\/<\/code><\/pre>\n

      \u5e76\u521b\u5efa \u4e00\u4e2a bash \u7684 alias, \u65b9\u4fbf\u4f60\u7684\u4f7f\u7528: alias acme.sh=~\/.acme.sh\/acme.sh<\/code><\/p>\n

      2). \u81ea\u52a8\u4e3a\u4f60\u521b\u5efa cronjob, \u6bcf\u5929 0:00 \u70b9\u81ea\u52a8\u68c0\u6d4b\u6240\u6709\u7684\u8bc1\u4e66, \u5982\u679c\u5feb\u8fc7\u671f\u4e86, \u9700\u8981\u66f4\u65b0, \u5219\u4f1a\u81ea\u52a8\u66f4\u65b0\u8bc1\u4e66.<\/p>\n

      \u66f4\u9ad8\u7ea7\u7684\u5b89\u88c5\u9009\u9879\u8bf7\u53c2\u8003: https:\/\/github.com\/Neilpang\/acme.sh\/wiki\/How-to-install<\/a><\/p>\n

      \u5b89\u88c5\u8fc7\u7a0b\u4e0d\u4f1a\u6c61\u67d3\u5df2\u6709\u7684\u7cfb\u7edf\u4efb\u4f55\u529f\u80fd\u548c\u6587\u4ef6<\/strong>, \u6240\u6709\u7684\u4fee\u6539\u90fd\u9650\u5236\u5728\u5b89\u88c5\u76ee\u5f55\u4e2d: ~\/.acme.sh\/<\/code><\/p>\n

      2. \u751f\u6210\u8bc1\u4e66<\/h1>\n

      acme.sh<\/strong> \u5b9e\u73b0\u4e86 acme<\/strong> \u534f\u8bae\u652f\u6301\u7684\u6240\u6709\u9a8c\u8bc1\u534f\u8bae. \u4e00\u822c\u6709\u4e24\u79cd\u65b9\u5f0f\u9a8c\u8bc1: http \u548c dns \u9a8c\u8bc1.<\/p>\n

      1. http \u65b9\u5f0f\u9700\u8981\u5728\u4f60\u7684\u7f51\u7ad9\u6839\u76ee\u5f55\u4e0b\u653e\u7f6e\u4e00\u4e2a\u6587\u4ef6, \u6765\u9a8c\u8bc1\u4f60\u7684\u57df\u540d\u6240\u6709\u6743,\u5b8c\u6210\u9a8c\u8bc1. \u7136\u540e\u5c31\u53ef\u4ee5\u751f\u6210\u8bc1\u4e66\u4e86.<\/h3>\n
      acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  \/home\/wwwroot\/mydomain.com\/<\/code><\/pre>\n

      \u53ea\u9700\u8981\u6307\u5b9a\u57df\u540d, \u5e76\u6307\u5b9a\u57df\u540d\u6240\u5728\u7684\u7f51\u7ad9\u6839\u76ee\u5f55. acme.sh<\/strong> \u4f1a\u5168\u81ea\u52a8\u7684\u751f\u6210\u9a8c\u8bc1\u6587\u4ef6, \u5e76\u653e\u5230\u7f51\u7ad9\u7684\u6839\u76ee\u5f55, \u7136\u540e\u81ea\u52a8\u5b8c\u6210\u9a8c\u8bc1. \u6700\u540e\u4f1a\u806a\u660e\u7684\u5220\u9664\u9a8c\u8bc1\u6587\u4ef6. \u6574\u4e2a\u8fc7\u7a0b\u6ca1\u6709\u4efb\u4f55\u526f\u4f5c\u7528.<\/p>\n

      \u5982\u679c\u4f60\u7528\u7684 apache<\/strong>\u670d\u52a1\u5668, acme.sh<\/strong> \u8fd8\u53ef\u4ee5\u667a\u80fd\u7684\u4ece apache<\/strong>\u7684\u914d\u7f6e\u4e2d\u81ea\u52a8\u5b8c\u6210\u9a8c\u8bc1, \u4f60\u4e0d\u9700\u8981\u6307\u5b9a\u7f51\u7ad9\u6839\u76ee\u5f55:<\/p>\n

      acme.sh --issue  -d mydomain.com   --apache<\/code><\/pre>\n

      \u5982\u679c\u4f60\u7528\u7684 nginx<\/strong>\u670d\u52a1\u5668, \u6216\u8005\u53cd\u4ee3, acme.sh<\/strong> \u8fd8\u53ef\u4ee5\u667a\u80fd\u7684\u4ece nginx<\/strong>\u7684\u914d\u7f6e\u4e2d\u81ea\u52a8\u5b8c\u6210\u9a8c\u8bc1, \u4f60\u4e0d\u9700\u8981\u6307\u5b9a\u7f51\u7ad9\u6839\u76ee\u5f55:<\/p>\n

      acme.sh --issue  -d mydomain.com   --nginx<\/code><\/pre>\n

      \u6ce8\u610f, \u65e0\u8bba\u662f apache \u8fd8\u662f nginx \u6a21\u5f0f, acme.sh\u5728\u5b8c\u6210\u9a8c\u8bc1\u4e4b\u540e, \u4f1a\u6062\u590d\u5230\u4e4b\u524d\u7684\u72b6\u6001, \u90fd\u4e0d\u4f1a\u79c1\u81ea\u66f4\u6539\u4f60\u672c\u8eab\u7684\u914d\u7f6e. \u597d\u5904\u662f\u4f60\u4e0d\u7528\u62c5\u5fc3\u914d\u7f6e\u88ab\u641e\u574f, \u4e5f\u6709\u4e00\u4e2a\u7f3a\u70b9, \u4f60\u9700\u8981\u81ea\u5df1\u914d\u7f6e ssl \u7684\u914d\u7f6e, \u5426\u5219\u53ea\u80fd\u6210\u529f\u751f\u6210\u8bc1\u4e66, \u4f60\u7684\u7f51\u7ad9\u8fd8\u662f\u65e0\u6cd5\u8bbf\u95eehttps. \u4f46\u662f\u4e3a\u4e86\u5b89\u5168, \u4f60\u8fd8\u662f\u81ea\u5df1\u624b\u52a8\u6539\u914d\u7f6e\u5427.<\/strong><\/p>\n

      \u5982\u679c\u4f60\u8fd8\u6ca1\u6709\u8fd0\u884c\u4efb\u4f55 web \u670d\u52a1, 80<\/strong> \u7aef\u53e3\u662f\u7a7a\u95f2\u7684, \u90a3\u4e48 acme.sh<\/strong> \u8fd8\u80fd\u5047\u88c5\u81ea\u5df1\u662f\u4e00\u4e2awebserver, \u4e34\u65f6\u542c\u572880<\/strong> \u7aef\u53e3, \u5b8c\u6210\u9a8c\u8bc1:<\/p>\n

      acme.sh  --issue -d mydomain.com   --standalone<\/code><\/pre>\n

      \u66f4\u9ad8\u7ea7\u7684\u7528\u6cd5\u8bf7\u53c2\u8003: https:\/\/github.com\/Neilpang\/acme.sh\/wiki\/How-to-issue-a-cert<\/a><\/p>\n

      2. \u624b\u52a8 dns \u65b9\u5f0f, \u624b\u52a8\u5728\u57df\u540d\u4e0a\u6dfb\u52a0\u4e00\u6761 txt \u89e3\u6790\u8bb0\u5f55, \u9a8c\u8bc1\u57df\u540d\u6240\u6709\u6743.<\/h3>\n

      \u8fd9\u79cd\u65b9\u5f0f\u7684\u597d\u5904\u662f, \u4f60\u4e0d\u9700\u8981\u4efb\u4f55\u670d\u52a1\u5668, \u4e0d\u9700\u8981\u4efb\u4f55\u516c\u7f51 ip, \u53ea\u9700\u8981 dns \u7684\u89e3\u6790\u8bb0\u5f55\u5373\u53ef\u5b8c\u6210\u9a8c\u8bc1. \u574f\u5904\u662f\uff0c\u5982\u679c\u4e0d\u540c\u65f6\u914d\u7f6e Automatic DNS API\uff0c\u4f7f\u7528\u8fd9\u79cd\u65b9\u5f0f acme.sh \u5c06\u65e0\u6cd5\u81ea\u52a8\u66f4\u65b0\u8bc1\u4e66\uff0c\u6bcf\u6b21\u90fd\u9700\u8981\u624b\u52a8\u518d\u6b21\u91cd\u65b0\u89e3\u6790\u9a8c\u8bc1\u57df\u540d\u6240\u6709\u6743\u3002<\/p>\n

      acme.sh  --issue  --dns   -d mydomain.com<\/code><\/pre>\n

      \u7136\u540e, acme.sh<\/strong> \u4f1a\u751f\u6210\u76f8\u5e94\u7684\u89e3\u6790\u8bb0\u5f55\u663e\u793a\u51fa\u6765, \u4f60\u53ea\u9700\u8981\u5728\u4f60\u7684\u57df\u540d\u7ba1\u7406\u9762\u677f\u4e2d\u6dfb\u52a0\u8fd9\u6761 txt \u8bb0\u5f55\u5373\u53ef.<\/p>\n

      \u7b49\u5f85\u89e3\u6790\u5b8c\u6210\u4e4b\u540e, \u91cd\u65b0\u751f\u6210\u8bc1\u4e66:<\/p>\n

      acme.sh  --renew   -d mydomain.com<\/code><\/pre>\n

      \u6ce8\u610f\u7b2c\u4e8c\u6b21\u8fd9\u91cc\u7528\u7684\u662f --renew<\/code><\/p>\n

      dns \u65b9\u5f0f\u7684\u771f\u6b63\u5f3a\u5927\u4e4b\u5904\u5728\u4e8e\u53ef\u4ee5\u4f7f\u7528\u57df\u540d\u89e3\u6790\u5546\u63d0\u4f9b\u7684 api \u81ea\u52a8\u6dfb\u52a0 txt \u8bb0\u5f55\u5b8c\u6210\u9a8c\u8bc1.<\/p>\n

      acme.sh<\/strong> \u76ee\u524d\u652f\u6301 cloudflare, dnspod, cloudxns, godaddy \u4ee5\u53ca ovh \u7b49\u6570\u5341\u79cd\u89e3\u6790\u5546\u7684\u81ea\u52a8\u96c6\u6210.<\/p>\n

      \u4ee5 dnspod \u4e3a\u4f8b, \u4f60\u9700\u8981\u5148\u767b\u5f55\u5230 dnspod \u8d26\u53f7, \u751f\u6210\u4f60\u7684 api id \u548c api key, \u90fd\u662f\u514d\u8d39\u7684. \u7136\u540e:<\/p>\n

      export DP_Id="1234"\n\nexport DP_Key="sADDsdasdgdsf"\n\nacme.sh   --issue   --dns dns_dp   -d aa.com  -d www.aa.com<\/code><\/pre>\n

      \u8bc1\u4e66\u5c31\u4f1a\u81ea\u52a8\u751f\u6210\u4e86. \u8fd9\u91cc\u7ed9\u51fa\u7684 api id \u548c api key \u4f1a\u88ab\u81ea\u52a8\u8bb0\u5f55\u4e0b\u6765, \u5c06\u6765\u4f60\u5728\u4f7f\u7528 dnspod api \u7684\u65f6\u5019, \u5c31\u4e0d\u9700\u8981\u518d\u6b21\u6307\u5b9a\u4e86. \u76f4\u63a5\u751f\u6210\u5c31\u597d\u4e86:<\/p>\n

      acme.sh  --issue   -d  mydomain2.com   --dns  dns_dp<\/code><\/pre>\n

      \u66f4\u8be6\u7ec6\u7684 api \u7528\u6cd5: https:\/\/github.com\/Neilpang\/acme.sh\/blob\/master\/dnsapi\/README.md<\/a><\/p>\n

      3. copy\/\u5b89\u88c5 \u8bc1\u4e66<\/h1>\n

      \u524d\u9762\u8bc1\u4e66\u751f\u6210\u4ee5\u540e, \u63a5\u4e0b\u6765\u9700\u8981\u628a\u8bc1\u4e66 copy \u5230\u771f\u6b63\u9700\u8981\u7528\u5b83\u7684\u5730\u65b9.<\/p>\n

      \u6ce8\u610f, \u9ed8\u8ba4\u751f\u6210\u7684\u8bc1\u4e66\u90fd\u653e\u5728\u5b89\u88c5\u76ee\u5f55\u4e0b: ~\/.acme.sh\/<\/code>, \u8bf7\u4e0d\u8981\u76f4\u63a5\u4f7f\u7528\u6b64\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6, \u4f8b\u5982: \u4e0d\u8981\u76f4\u63a5\u8ba9 nginx\/apache \u7684\u914d\u7f6e\u6587\u4ef6\u4f7f\u7528\u8fd9\u4e0b\u9762\u7684\u6587\u4ef6. \u8fd9\u91cc\u9762\u7684\u6587\u4ef6\u90fd\u662f\u5185\u90e8\u4f7f\u7528, \u800c\u4e14\u76ee\u5f55\u7ed3\u6784\u53ef\u80fd\u4f1a\u53d8\u5316.<\/p>\n

      \u6b63\u786e\u7684\u4f7f\u7528\u65b9\u6cd5\u662f\u4f7f\u7528 --install-cert<\/code> \u547d\u4ee4,\u5e76\u6307\u5b9a\u76ee\u6807\u4f4d\u7f6e, \u7136\u540e\u8bc1\u4e66\u6587\u4ef6\u4f1a\u88abcopy\u5230\u76f8\u5e94\u7684\u4f4d\u7f6e, \u4f8b\u5982:<\/p>\n

      Apache example:<\/h2>\n
      acme.sh --install-cert -d example.com \\\n--cert-file      \/path\/to\/certfile\/in\/apache\/cert.pem  \\\n--key-file       \/path\/to\/keyfile\/in\/apache\/key.pem  \\\n--fullchain-file \/path\/to\/fullchain\/certfile\/apache\/fullchain.pem \\\n--reloadcmd     "service apache2 force-reload"<\/code><\/pre>\n

      Nginx example:<\/h2>\n
      acme.sh --install-cert -d example.com \\\n--key-file       \/path\/to\/keyfile\/in\/nginx\/key.pem  \\\n--fullchain-file \/path\/to\/fullchain\/nginx\/cert.pem \\\n--reloadcmd     "service nginx force-reload"<\/code><\/pre>\n

      (\u4e00\u4e2a\u5c0f\u63d0\u9192, \u8fd9\u91cc\u7528\u7684\u662f service nginx force-reload<\/code>, \u4e0d\u662f service nginx reload<\/code>, \u636e\u6d4b\u8bd5, reload<\/code> \u5e76\u4e0d\u4f1a\u91cd\u65b0\u52a0\u8f7d\u8bc1\u4e66, \u6240\u4ee5\u7528\u7684 force-reload<\/code>)<\/p>\n

      Nginx \u7684\u914d\u7f6e ssl_certificate<\/code> \u4f7f\u7528 \/etc\/nginx\/ssl\/fullchain.cer<\/code> \uff0c\u800c\u975e \/etc\/nginx\/ssl\/<domain>.cer<\/code> \uff0c\u5426\u5219 SSL Labs<\/a> \u7684\u6d4b\u8bd5\u4f1a\u62a5 Chain issues Incomplete<\/code> \u9519\u8bef\u3002<\/p>\n

      --install-cert<\/code>\u547d\u4ee4\u53ef\u4ee5\u643a\u5e26\u5f88\u591a\u53c2\u6570, \u6765\u6307\u5b9a\u76ee\u6807\u6587\u4ef6. \u5e76\u4e14\u53ef\u4ee5\u6307\u5b9a reloadcmd, \u5f53\u8bc1\u4e66\u66f4\u65b0\u4ee5\u540e, reloadcmd\u4f1a\u88ab\u81ea\u52a8\u8c03\u7528,\u8ba9\u670d\u52a1\u5668\u751f\u6548.<\/p>\n

      \u8be6\u7ec6\u53c2\u6570\u8bf7\u53c2\u8003: https:\/\/github.com\/Neilpang\/acme.sh#3-install-the-issued-cert-to-apachenginx-etc<\/a><\/p>\n

      \u503c\u5f97\u6ce8\u610f\u7684\u662f, \u8fd9\u91cc\u6307\u5b9a\u7684\u6240\u6709\u53c2\u6570\u90fd\u4f1a\u88ab\u81ea\u52a8\u8bb0\u5f55\u4e0b\u6765, \u5e76\u5728\u5c06\u6765\u8bc1\u4e66\u81ea\u52a8\u66f4\u65b0\u4ee5\u540e, \u88ab\u518d\u6b21\u81ea\u52a8\u8c03\u7528.<\/p>\n

      4. \u66f4\u65b0\u8bc1\u4e66<\/h1>\n

      \u76ee\u524d\u8bc1\u4e66\u5728 60 \u5929\u4ee5\u540e\u4f1a\u81ea\u52a8\u66f4\u65b0, \u4f60\u65e0\u9700\u4efb\u4f55\u64cd\u4f5c. \u4eca\u540e\u6709\u53ef\u80fd\u4f1a\u7f29\u77ed\u8fd9\u4e2a\u65f6\u95f4, \u4e0d\u8fc7\u90fd\u662f\u81ea\u52a8\u7684, \u4f60\u4e0d\u7528\u5173\u5fc3.<\/p>\n

      5. \u66f4\u65b0 acme.sh<\/h1>\n

      \u76ee\u524d\u7531\u4e8e acme \u534f\u8bae\u548c letsencrypt CA \u90fd\u5728\u9891\u7e41\u7684\u66f4\u65b0, \u56e0\u6b64 acme.sh \u4e5f\u7ecf\u5e38\u66f4\u65b0\u4ee5\u4fdd\u6301\u540c\u6b65.<\/p>\n

      \u5347\u7ea7 acme.sh \u5230\u6700\u65b0\u7248 :<\/p>\n

      acme.sh --upgrade<\/code><\/pre>\n

      \u5982\u679c\u4f60\u4e0d\u60f3\u624b\u52a8\u5347\u7ea7, \u53ef\u4ee5\u5f00\u542f\u81ea\u52a8\u5347\u7ea7:<\/p>\n

      acme.sh  --upgrade  --auto-upgrade<\/code><\/pre>\n

      \u4e4b\u540e, acme.sh \u5c31\u4f1a\u81ea\u52a8\u4fdd\u6301\u66f4\u65b0\u4e86.<\/p>\n

      \u4f60\u4e5f\u53ef\u4ee5\u968f\u65f6\u5173\u95ed\u81ea\u52a8\u66f4\u65b0:<\/p>\n

      acme.sh --upgrade  --auto-upgrade  0<\/code><\/pre>\n

      6. \u51fa\u9519\u600e\u4e48\u529e\uff1a<\/h1>\n

      \u5982\u679c\u51fa\u9519, \u8bf7\u6dfb\u52a0 debug log\uff1a<\/p>\n

      acme.sh  --issue  .....  --debug <\/code><\/pre>\n

      \u6216\u8005\uff1a<\/p>\n

      acme.sh  --issue  .....  --debug  2<\/code><\/pre>\n

      \u8bf7\u53c2\u8003\uff1a https:\/\/github.com\/Neilpang\/acme.sh\/wiki\/How-to-debug-acme.sh<\/a><\/p>\n

      \u6700\u540e, \u672c\u6587\u5e76\u975e\u5b8c\u5168\u7684\u4f7f\u7528\u8bf4\u660e, \u8fd8\u6709\u5f88\u591a\u9ad8\u7ea7\u7684\u529f\u80fd, \u66f4\u9ad8\u7ea7\u7684\u7528\u6cd5\u8bf7\u53c2\u770b\u5176\u4ed6 wiki \u9875\u9762.<\/p>\n

      https:\/\/github.com\/Neilpang\/acme.sh\/wiki<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

      acme.sh \u5b9e\u73b0\u4e86 acme \u534f\u8bae, \u53ef\u4ee5\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. \u4e3b\u8981\u6b65\u9aa4: \u5b89\u88c5 <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,18],"tags":[],"yoast_head":"\nacme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\" \/>\n<meta property=\"og:description\" content=\"acme.sh \u5b9e\u73b0\u4e86 acme \u534f\u8bae, \u53ef\u4ee5\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. \u4e3b\u8981\u6b65\u9aa4: \u5b89\u88c5\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\" \/>\n<meta property=\"og:site_name\" content=\"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-06T02:54:36+00:00\" \/>\n<meta name=\"author\" content=\"\u7ba1\u7406\u5458\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\"},\"author\":{\"name\":\"\u7ba1\u7406\u5458\",\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1\"},\"headline\":\"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66.\",\"datePublished\":\"2021-03-06T02:54:36+00:00\",\"dateModified\":\"2021-03-06T02:54:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\"},\"wordCount\":161,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1\"},\"articleSection\":[\"Linux\",\"Linux\u670d\u52a1\"],\"inLanguage\":\"zh-CN\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\",\"url\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\",\"name\":\"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\",\"isPartOf\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/#website\"},\"datePublished\":\"2021-03-06T02:54:36+00:00\",\"dateModified\":\"2021-03-06T02:54:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#breadcrumb\"},\"inLanguage\":\"zh-CN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.linuxdevops.cn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux\",\"item\":\"https:\/\/www.linuxdevops.cn\/linux\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.linuxdevops.cn\/#website\",\"url\":\"https:\/\/www.linuxdevops.cn\/\",\"name\":\"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\",\"description\":\"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\u7b14\u8bb0\",\"publisher\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1\"},\"alternateName\":\"linuxdevops\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.linuxdevops.cn\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-CN\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1\",\"name\":\"\u7ba1\u7406\u5458\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-CN\",\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.linuxdevops.cn\/wp-content\/uploads\/2019\/07\/cropped-index.jpg\",\"contentUrl\":\"https:\/\/www.linuxdevops.cn\/wp-content\/uploads\/2019\/07\/cropped-index.jpg\",\"width\":512,\"height\":512,\"caption\":\"\u7ba1\u7406\u5458\"},\"logo\":{\"@id\":\"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/image\/\"},\"description\":\"\u7ba1\u7406\u5458\",\"url\":\"https:\/\/www.linuxdevops.cn\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/","og_locale":"zh_CN","og_type":"article","og_title":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4","og_description":"acme.sh \u5b9e\u73b0\u4e86 acme \u534f\u8bae, \u53ef\u4ee5\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. \u4e3b\u8981\u6b65\u9aa4: \u5b89\u88c5","og_url":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/","og_site_name":"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4","article_published_time":"2021-03-06T02:54:36+00:00","author":"\u7ba1\u7406\u5458","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#article","isPartOf":{"@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/"},"author":{"name":"\u7ba1\u7406\u5458","@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1"},"headline":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66.","datePublished":"2021-03-06T02:54:36+00:00","dateModified":"2021-03-06T02:54:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/"},"wordCount":161,"commentCount":0,"publisher":{"@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1"},"articleSection":["Linux","Linux\u670d\u52a1"],"inLanguage":"zh-CN","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/","url":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/","name":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66. - Linux\u81ea\u52a8\u5316\u8fd0\u7ef4","isPartOf":{"@id":"https:\/\/www.linuxdevops.cn\/#website"},"datePublished":"2021-03-06T02:54:36+00:00","dateModified":"2021-03-06T02:54:36+00:00","breadcrumb":{"@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#breadcrumb"},"inLanguage":"zh-CN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.linuxdevops.cn\/2021\/03\/acme-sh-automatically-generate-free-certificates-from\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.linuxdevops.cn\/"},{"@type":"ListItem","position":2,"name":"Linux","item":"https:\/\/www.linuxdevops.cn\/linux\/"},{"@type":"ListItem","position":3,"name":"acme.sh \u81ea\u52a8\u4ece letsencrypt \u751f\u6210\u514d\u8d39\u7684\u8bc1\u4e66."}]},{"@type":"WebSite","@id":"https:\/\/www.linuxdevops.cn\/#website","url":"https:\/\/www.linuxdevops.cn\/","name":"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4","description":"Linux\u81ea\u52a8\u5316\u8fd0\u7ef4\u7b14\u8bb0","publisher":{"@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1"},"alternateName":"linuxdevops","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.linuxdevops.cn\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-CN"},{"@type":["Person","Organization"],"@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/3e206335d5796fdd8679e449df72a0d1","name":"\u7ba1\u7406\u5458","image":{"@type":"ImageObject","inLanguage":"zh-CN","@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/image\/","url":"https:\/\/www.linuxdevops.cn\/wp-content\/uploads\/2019\/07\/cropped-index.jpg","contentUrl":"https:\/\/www.linuxdevops.cn\/wp-content\/uploads\/2019\/07\/cropped-index.jpg","width":512,"height":512,"caption":"\u7ba1\u7406\u5458"},"logo":{"@id":"https:\/\/www.linuxdevops.cn\/#\/schema\/person\/image\/"},"description":"\u7ba1\u7406\u5458","url":"https:\/\/www.linuxdevops.cn\/author\/root\/"}]}},"_links":{"self":[{"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/posts\/946"}],"collection":[{"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/comments?post=946"}],"version-history":[{"count":1,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/posts\/946\/revisions"}],"predecessor-version":[{"id":947,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/posts\/946\/revisions\/947"}],"wp:attachment":[{"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/media?parent=946"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/categories?post=946"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxdevops.cn\/wp-json\/wp\/v2\/tags?post=946"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}