怎么用acme.sh进行ssl申请和自动续约?-创新互联
本文以demo.example.com为例,详细介绍了使用acme.sh进行ssl申请和自动续约的方法
创新互联公司-专业网站定制、快速模板网站建设、高性价比麦积网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式麦积网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖麦积地区。费用合理售后完善,十多年实体公司更值得信赖。安装
只需要用任意用户执行
curl https://get.acme.sh | sh
acme.sh 会安装到 ~/.acme.sh/
目录下,并创建新的自动计划(cronjob)在凌晨0点检查所有证书
生成证书的方式主要有三种
- 网站文件方式,适合于已经部署好
apache
或是nginx
服务器的情况 - 临时监听80端口方式,适合于没有部署好服务的服务器
- 手动配置DNS,需要有手动配置DNS的权限,适合没有服务器或是不想更改服务器的情况
1.文件认证
acme.sh --issue -d <域名> --webroot <网站根目录>
acme.sh --issue -d demo.example.com --webroot /home/wwwroot/demo.example.com/
2.暂时监听80端口
yum install socat
acme.sh --issue -d demo.example.com --standalone
3. DNS方式
手动方式
首先获得认证需要的解析记录
acme.sh --issue --dns -d demo.example.com
然后在DNS服务商中添加记录
最后重新生成证书
acme.sh --renew -d demo.example.com
使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。
自动方式
dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证
首先需要在云上申请有DNS配置权限的账号密码
腾讯云
参考:
操作方法
在dnspod官网上申请
https://www.dnspod.cn/Login?r=/console
然后登录远程服务器
export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"
acme.sh --issue --dns dns_dp -d demo.example.com
阿里云
参考:
操作方法
在阿里云官网登录添加拥有DNS配置权限的子账户 https://ram.console.aliyun.com/overview
然后登录远程服务器
export Ali_Key="AccessKeyId"
export Ali_Secret="AccessKeySecret"
acme.sh --issue --dns dns_ali -d demo.example.com
证书的安装
默认生成的证书都放在安装目录下: ~/.acme.sh/
需要将证书“拷贝”到自定义位置,方便配置,这里的复制需要用acme.sh的自带工具用于日后自动更新
acme.sh --installcert -d demo.example.com \
--key-file /usr/local/nginx/ssl/demo_example_com.key \
--fullchain-file /usr/local/nginx/ssl/demo_example_com.cer \
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
apache服务器的配置
暂无
nginx服务器的配置
nginx 设置类似如下
server {
listen 443 ssl;
ssl on;
ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer; # 这里指向证书安装的位置
ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key;
}
让你的SSL更安全
参考:https://mikemiao111.com/nginx%E5%A2%9E%E5%BC%BAhttps%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE/
nginx默认采用1024位的加密算法,如果需要的话可以使用2048位的代替,这样可以让加密更安全
首先生成 zjk_zoollcar_top.pem 文件到指定目录
openssl dhparam -out /usr/local/nginx/ssl/demo_example_com.pem 2048
然后在nginx配置文件中设置
server {
listen 443 ssl;
ssl on;
ssl_certificate /usr/local/nginx/ssl/demo_example_com.cer;
ssl_certificate_key /usr/local/nginx/ssl/demo_example_com.key;
ssl_dhparam /usr/local/nginx/ssl/demo_example_com.pem; #新增
}
可以用下面的网站测试SSL安全性
https://www.ssllabs.com/ssltest/
更新 acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
名称栏目:怎么用acme.sh进行ssl申请和自动续约?-创新互联
本文链接:http://azwzsj.com/article/cocipp.html