acme.sh+阿里云DNS自动获取和更新泛域名证书
轻轻松松免费给网站加上https请求
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
主要步骤:
- 安装 acme.sh
- 生成证书
- copy 证书到 nginx/apache 或者其他服务
- 更新证书
- 更新 acme.sh
安装acme.sh
注意: 国内的服务器网络会比较慢可能会失败
1 | curl https://get.acme.sh | sh -s email=my@example.com |
脚本会安装home目录下:~/.acme.sh/,同时会创建一个cronjob,每天检测证书,快过期自动更新。
生成证书
切换CA提供商
1 | acme.sh --set-default-ca --server letsencrypt |
默认使用ZeroSSL提供证书感觉不太好用,可以切换到Letsencrypt。
- 配置阿里云的accessKey和accessSecret
1 | export Ali_Key="access key" |
确保这个key拥有管理DNS和域名的权限
acmes.sh运行后会把上面的key和secret保存到~/.acme.sh/account.conf中,这样下次就不用重复添加了
注册域名
1 | acme.sh --issue --dns dns_ali -d 'example.com' -d '*.example.com' |
1 | acme.sh --install-cert -d 'example.com' \ |
/etc/acme/ssl/example.com/下面的证书用于配置到nginx里面,~/.acme.sh下面也有证书,但是不建议使用,那下面的都是给acme.sh脚本使用的
reloadcmd命令如果使用的是docker部署nginx需要修改成docker的命令
使用证书
下面以nginx为例,配置内容如下
1 | server { |
反向代理配置可以参考ss+websocket+tls+nginx配置伪装网站
管理acme.sh
更新acme.sh
手动升级
1 | acme.sh --upgrade |
设置自动升级
1 | acme.sh --upgrade --auto-upgrade |
关闭自动升级
1 | acme.sh --upgrade --auto-upgrade 0 |
查看acme.sh管理的域名列表
1 | acme.sh --list |
acme.sh+阿里云DNS自动获取和更新泛域名证书