XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

自动生成SSL证书的利器acme.sh

时间: 2018-09-30   |   分类: tech     |   阅读: 542 字 ~2分钟

已经使用letsencrypt的免费证书一段时间了,是之前折腾Ghost博客时自动安装的,而后台其实也是用的acme.sh这个工具。

遇到的问题是不知哪里的配置错误,我的证书自动更新有问题,每次都是遇到证书已经过期,网站彻底不能访问了,必须要手动更新。

之前用的HTTP的验证方式,由于一知半解,这块每次手动配置也会花费一些时间。

今天重读了官方文档,才发现有一些细节的使用,其实可以做到一劳永逸。

安装

curl  https://get.acme.sh |sudo sh
# 默认安装在~/.acme.sh/
# 每天0点自动检测是否过期,并会通过cronjob自动更新证书

生成证书

支持两种验证方式。
注:记得带上www.mydomain.com这种形式的域名。

HTTP

我之前一直用这种,相比DNS方式还是麻烦些。

acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/xulz/wwwroot/mydomain.com/
# 之前都不知道还可以指定nginx智能识别
acme.sh --issue  -d mydomain.com   --nginx

DNS

这个是真的自动化了。

# 以阿里云为例
# 下面的信息存在~/.acme.sh/account.conf,也可以手动修改
export Ali_Key="sdfsdfsdfljlbj"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

acme.sh --issue --dns dns_ali -d mydomain.com -d www.mydomain.com

安装证书

这步常被忽略。
注: 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件

# 注:Nginx 的配置 ssl_certificate 需要使用 /etc/nginx/ssl/fullchain.cer        

acme.sh  --installcert  -d  <domain>.com   \
        --key-file   /etc/nginx/ssl/<domain>.key \
        --fullchain-file /etc/nginx/ssl/fullchain.cer \
        --reloadcmd  "service nginx force-reload"

其他

# 更新acme.sh
# V2版本已支持wildcard证书
acme.sh --upgrade
# 调试,打印更详细信息
acme.sh  --issue  ...  --debug 
  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/acme/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#web# #security#
算法
再学游泳
  • 文章目录
  • 站点概览

xulz

时光,漫步

56 日志
3 分类
28 标签
  • 安装
  • 生成证书
    • HTTP
    • DNS
  • 安装证书
  • 其他
© 2017 - 2023 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%