使用acme.sh自助签发Let's Encrypt 的SSL证书

文档说明:只记录关键地方; Let’s Encrypt 是一个证书颁发机构(CA)

试验环境: linux debian 11 docker

目标:自助签发域名 SSL 证书 (包括通配符证书)

容器运行 acme.sh

version: "3"
services:
  acme:
    image: neilpang/acme.sh
    container_name: acme.sh
    network_mode: host
    working_dir: /workdir/
    volumes:
      -  ./:/workdir/
    command:
      - tail
      - -f
      - /dev/null

申请域名证书脚本

以阿里云万网域名为例,申请泛域名证书

vi generate-doamin-ssl.sh

#!/bin/env bash
set -exu


acme.sh --set-default-ca  --server  letsencrypt


export Ali_Key="AccessKey ID"
export Ali_Secret="Access Key" #云access_secret

# 申请证书(通配符证书)
acme.sh  --force --issue \
-d "*.xiaoshuogeng.com" \
-d "*.kn.xiaoshuogeng.com" \
--dns dns_ali

# 生成证书
acme.sh --install-cert \
-d "*.xiaoshuogeng.com" \
-d "*.kn.xiaoshuogeng.com" \
--key-file        /workdir/wildcard.xiaoshuogeng.com.key.pem \
--fullchain-file  /workdir/wildcard.xiaoshuogeng.com.fullchain.pem

执行申请域名证书脚本

# 进入容器
docker exec -it acme.sh 
# 运行申请证书脚本
sh generate-doamin-ssl.sh


参考文档

  1. Let's Encrypt 的运作方式
  2. ACME 客户端列表
  3. 实现acme协议的客户端之一:acme.sh
  4. acme.sh How to use DNS API
  5. Run acme.sh in docker
  6. acme.sh Blogs-and-tutorials
  7. 阿里云 RAM 用户 申请AccessKey ID 和 Access Key
  8. 阿里云 访问控制RAM 入门概述
  9. nginx TLSv1.3配置
  10. 更多 web配置SSL参考网站
  11. Let's Encrypt 证书链过期问题
  12. Let's Encrypt 证书链过期问题解决方案
  13. Let's Encrypt 证书链过期 XP系统下解决办法,导入证书
  14. et's Encrypt 验证导入证书
  15. Sectigo AddTrust External CA Root 根证书 2020 年 5 月 30 日到期提示和解决方案
posted @ 2022-10-27 14:37  jingjingxyk  阅读(311)  评论(0编辑  收藏  举报