系统环境

操作系统:CentOS 7.9

Docker version:26.1.4

docker-compose version:1.29.1

nginx:使用docker部署

部署ALLinSSL

使用docker-compose方式进行部署,需提前创建名为app_network的docker桥接网络。

docker-compose.yaml配置文件如下:

version: "3"

services:
  allinssl:
    image: allinssl/allinssl:latest
    container_name: allinssl
    restart: always
    volumes:
      - ./data:/www/allinssl/data
    ports:
      - "6103:8888"
    environment:
      - ALLINSSL_USER=allinssl
      - ALLINSSL_PWD=自定义登录密码
      - ALLINSSL_URL=allinssl
      - TZ=Asia/Shanghai
    networks:
      - app_network

networks:
  app_network:
    external: true

配置说明:

ALLINSSL_USER:登录用户名

ALLINSSL_PWD:登录密码

ALLINSSL_URL:安全入口,首次使用需要url增加该路径,如原访问地址为localhost:6103,则首次访问地址为localhost:6103/allinssl

配置自动化

授权API

阿里云/腾讯云

直接将对应云平台中生成的AK/SK进行复制配置即可。

注意:

阿里云权限建议: 为了安全,建议创建一个拥有所需最小权限(例如 DNS 管理 AliyunDNSFullAccess,CDN 管理 AliyunCDNFullAccess,WAF 管理相关权限等)的 RAM 用户,并使用其 AK/SK。

腾讯云权限建议: 同阿里云,建议创建拥有最小所需权限(例如 DNSPod 管理 QcloudDNSPodFullAccess,CDN 管理 QcloudCDNFullAccess,WAF 管理相关权限等)的 CAM 子用户,并使用其凭证。

SSH

配置后续用于部署证书文件的服务器SSH连接账号密码,如果使用本地部署可以不进行该项配置。

注意:

  1. 该账号有直接操作证书(如创建文件不需要sudo)的权限。

  2. 该账号可以有直接操作docker的权限(如果不是docker部署nginx,是本地部署的nginx则需要有直接nginx -s reload权限,非nginx类推)。

自动化部署

1.使用自动化部署模版

2.修改自动化名称,示例:ymblog.site自动化部署

3.开始,设置自动执行周期,示例:每天1点(我使用时创建时每次打开都会重新随机,需要创建后通过修改生效)

4.申请证书,按需进行配置即可

5.部署,因为我的环境是docker部署的nginx,就直接使用了直接SSH部署(也可以通过在docker-compose.yaml中增加证书目录和docker服务映射后使用本地部署)。

注意点:

  1. 证书文件及私钥文件路径要写带文件名的全路径。

  2. 前置命令,是在连接上SSH之后,部署证书前所执行的命令,可根据实际需求所选(备份旧证书或其他操作)。

  3. 后置命令,是连接上SSH,部署证书完成后所执行的命令,可根据实际需求所选(重载服务等)。

  4. 重复部署,配置相同时跳过,此时前置命令和后置命令也不会再执行。

6.通知,执行成功与失败分别配置不同的通知(需要先在设置/告警通知中配置邮件通知)。

通知配置示例:

通知主题:✅ SSL证书自动化部署完成 / ❌ SSL证书自动化部署失败

通知内容:ymblog.site域名SSL证书自动化部署完成,请知晓。 / ymblog.site域名SSL证书自动化部署失败,请前往控制台查看。

跳过发送通知:成功-跳过(避免自动化操作跳过时发送无效邮件),失败-发送