资源共享,记录个人心得等

linux中使用acme.sh的dnsapi配置证书

详细可以参考官方文档:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

首先要先获取解析域名网站账户中的API,我使用的是Cloudflare


  1. 首先登录cf账号,进入右上角的My Profile
  2. 然后进入API Tokens,点击Create Tokens新建一个Tokens,创建API令牌,

此处注意Permissions要2条,Zone.Zone和Zone.DNS,权限为Edit可编辑,Resources设置为All zones。

  1. 紧接着在API页面中,下面的Global API KEY 也要用到,他是CF_KEY

  2. export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
    export CF_Email="xxxx@sss.com"
    export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje"
    export CF_Account_ID="xxxxxxxxxxxxx"
    

把他们写好分别在终端中输入,id就是cf页面中的32位字符

5.png

  1. acme.sh --issue --dns dns_cf -d example.com -d www.example.com
    

运行,等待即可。

  1. CF_KeyCF_EmailCF_TokenCF_Account_ID将被保存~/.acme.sh/account.conf,需要时会被重用。

  2. copy/安装 证书

  • 前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.

    注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.

    正确的使用方法是使用 –installcert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:

acme.sh --installcert -d domain.com \
--key-file /usr/local/nginx/conf/ssl/www.domain.cn.key \
--fullchain-file /usr/local/nginx/conf/ssl/www.domain.cn.cer \
--reloadcmd "service nginx reload"

(一个小提醒, 这里用的是 service nginx force-reload, 不是 service nginx reload, 据测试, reload 并不会重新加载证书, 所以用的 force-reload)

–installcert命令可以携带很多参数, 来指定目标文件. 并且可以指定 reloadcmd, 当证书更新以后, reloadcmd会被自动调用,让服务器生效.


参考文章:https://www.cnblogs.com/xiaoyige/p/12667640.html

赞(0)
转载需标明出处Lee's Blog » linux中使用acme.sh的dnsapi配置证书

评论 抢沙发

登录

找回密码

注册