抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

自己有很多的网站,每次都需要申请SSL证书,所以最近在鼓捣怎么申请泛域名证书减少工作量。

前言

现在随着chrome大力推广网站HTTPS化,推进互联网的数据安全进程,SSL证书的申请渠道有非常的多,个人用户申请免费的SSL证书很方便。

阿里云、腾讯云都支持20个以内的单域名SSL证书,有效期是一年,但是因为网站比较多,所以首先考虑方案是申请一个免费的泛域名证书,这样在一级的所有网站可以复用一套SSL证书,更新起来也不用那么繁琐。

申请SSL免费证书的渠道

  • 使用certbot申请SSL证书,可申请普通域名和泛域名证书并配置自动续约,有效期90天
  • 使用acme.sh申请SSL证书,可申请普通域名和泛域名证书并配置自动续约,有效期90天
  • 使用阿里云申请SSL证书,仅可申请普通单域名证书,过期需要人工再次申请,有效期365天
  • 使用腾讯云申请SSL证书,仅可申请普通单域名证书,过期需要人工再次申请,有效期365天

使用acme.sh申请免费的SSL证书并配置自动续期

为什么选择acme.sh?

  • 由于certbot的方式需要安装对应的安装包并且需要支持python环境,配置起来较为麻烦,故不选
  • 由于阿里云、腾讯云证书都是单域名的,故不选
  • acme.sh完全基本shell脚本,不需要安装对应依赖,直接下载脚本shell脚本即可安装对应的证书

如何使用acme.sh申请证书(macos)

  1. 打开iterm,然后mkidr .acme.sh
  2. 然后git clone [https://github.com/acmesh-official/acme.sh.git](https://github.com/acmesh-official/acme.sh.git)到对应文件夹下即可
  3. 申请SSL证书需要验证域名的所有权,由于我使用的是阿里云的万网域名,所以可以直接使用阿里云的DNS进行验证并且自动完成添加TXT配置完成域名验证,参见文档
  4. 配置好ak之后,即可申请SSL证书acme.sh --issue --dns dns_ali -d '*.bosong.online'等待命令执行完成,完成SSL证书的申请
  5. 证书是在我的mac电脑上申请的,所以可以scp到对应服务器进行替换即可,替换完成重启nginx

如何为SSL证书自动续约

使用acme.sh的方式申请的SSL证书有效期只有90天,这代表一年最少得人工操作4次证书申请以及发布到对应服务器重启nginx。
所以将对应的命令写成了shell命令,使用crontab -e定期执行脚本,进行证书的检查更新以及自动传送及重启nginx,对应脚本如下(仅供参考,可以根据实际情况进行修改)

1
2
3
4
#!/bin/bash
acme.sh --renew --dns dns_ali -d '*.bosong.online'
scp #证书的生成路径 ce-155:/data/nginx/conf/cert/
ssh ce-155 && systemctl reload nginx.service && exit

结语

使用工具自动申请SSL证书简单并且很方便,能节省自己很多证书,泛域名证书用起来也会很酷,文章有些中如果有错误或者不到位的地方,请多多原谅。

参阅文档

评论