acme 证书管理

acme 证书管理
参考:官方文档

1. 证书申请

1.1 acme安装

  1. 命令行直接自动下载安装
curl https://get.acme.sh | sh
  1. 手动下载安装

网络不好可以手动下载上传,下载最新的acme安装包
https://github.com/Neilpang/acme.sh/archive/master.tar.gz
如果没有安装 socat,安装socat(可选)

yum install socat -y

安装

tar -zvxf acme.sh-master.tar.gz
cd acme.sh-master
./acme.sh --install

1.2 注册账户

acme.sh --register-account -m 邮箱地址

acme现在使用ZeroSSL,不注册账户会提示如下错误:
[Fri Nov 19 15:03:11 CST 2021] No EAB credentials found for ZeroSSL, let’s get one
[Fri Nov 19 15:03:11 CST 2021] acme.sh is using ZeroSSL as default CA now.

1.3 DNS 管理API访问配置

我这里使用的是阿里云,其他类似,参考:官方文档

  1. 用户头像下拉选择 AccessKey 管理
    在这里插入图片描述
  2. 创建子账户

AccessKey可以调用OpenApi进行一些操作,为了安全,使用创建个子用户,授予DNS管理权限即可。
在这里插入图片描述

  1. 创建并授权

创建用户,完成之后,会自动分配AccessKeyID 和 AccessKeySecret,复制下来保存
创建账户


授权
我这里已经选择过了,所以是灰色的,未选择点击 管理云解析(DNS)的权限放右边即可。
账户授权

1.4 申请证书

1.4.1 添加环境变量

回到服务器
添加上面的的key和Secret到系统环境变量,追加在~/.bashrc文件中即可,在申请证书的时候,acme 会保存到账户信息中

# 编辑文件
vim ~/.bashrc
export Ali_Key="AccessKeyID" 
export Ali_Secret="AccessKeySecret"
# 保存退出,并使环境变量生效
source ~/.bashrc

1.4.2 申请泛域名

acme.sh --issue --dns dns_ali -d xxx.com -d '*.xxx.com'

2. Nginx配置

主要是这三行
这里我是用了软连接放着了nginx配置下,真实地址如下:
key.pem => /root/.acme.sh/xxx.com/xxx.com.key
cert.pem => /root/.acme.sh/xxx.com/fullchain.cer

ssl_certificate /etc/nginx/xxx.com/fullchain/cert.pem;
ssl_certificate_key /etc/nginx/xxx.com/key.pem;
ssl_trusted_certificate /etc/nginx/xxx.com/fullchain/cert.pem;
server {
  listen 80;
  server_name www.xxx.com xxx.com;
  rewrite ^(.*) https://$host$1 permanent;
}

server {
  # 后来版本这样配置,以前是ssl on; 会提示警告:
  # nginx: [warn] the "ssl" directive is deprecated
  listen 443 ssl;
  server_name www.xxx.com xxx.com;

  gzip on;
  gzip_min_length 1k;
  gzip_comp_level 9;
  gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  gzip_vary on;
  gzip_disable "MSIE [1-6]\.";

  ssl_certificate /etc/nginx/xxx.com/fullchain/cert.pem;
  ssl_certificate_key /etc/nginx/xxx.com/key.pem;
  ssl_trusted_certificate /etc/nginx/xxx.com/fullchain/cert.pem;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;
  root /var/www/static-web/xxxxxx;
  index index.html;
  location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt){
    root /var/www/static-web/xxxxxx;
  }
}

3. 更新证书

证书有效期3个月,正常通过脚本启动会自动添加定时任务

25 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

如果更新失败或者发现证书失效,则需要更新acme

  1. 自动更新
acme.sh --upgrade
  1. 手动更新,参考第一节acme安装。


  1. 最后执行更新证书命令
acme.sh --cron --force --debug 2


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值