经常做网站或API开发的朋友应该都懂,HTTPS加密离不开SSL证书,申请、续期、管理这些证书又繁琐又容易忘。今天给大家分享一个实用小项目——用Docker Compose快速部署AllinSSL服务,它能一站式搞定SSL证书的申请、自动续期和集中管理,不用手动配置复杂环境,小白也能轻松上手。

0. 介绍

这个项目的核心就是通过Docker Compose容器化部署AllinSSL服务,把原本复杂的SSL证书管理流程简化。借助Docker的环境隔离特性,不用担心服务依赖和主机环境冲突;再加上Compose的编排能力,一键就能完成部署和启动。不管是个人开发者做小网站,还是小型企业需要给API加HTTPS,这个单机部署方案都能快速满足需求。

1. 优点

  • 部署门槛低,上手快:通过Compose文件封装所有部署配置,一键完成AllinSSL服务部署,无需手动配置依赖环境,即使是非专业运维人员也能快速搭建SSL证书管理服务;

  • 数据安全可靠:基于数据卷挂载实现核心数据持久化,容器生命周期与数据生命周期分离,避免容器操作导致的证书数据丢失;

  • 环境隔离性好:容器化运行使AllinSSL服务与主机环境隔离,不会干扰主机其他程序运行,也避免了主机环境差异带来的兼容性问题;

  • 运维管理便捷:借助Docker Compose的统一命令,可快速实现服务的启动、停止、日志查看、容器调试等操作,降低运维成本;

  • 网络配置简洁:采用默认的bridge网络模式,无需复杂的网络规划,即可实现服务的外部访问,适配绝大多数单机部署场景。

2. 缺点

  • 仅支持单机部署:该配置采用bridge网络模式和本地数据卷挂载,仅适用于单机环境部署;若需要多节点集群部署(如高可用场景),则需要额外配置分布式网络和共享存储,配置复杂度大幅提升;

  • 缺乏动态配置能力:当前配置未集成配置中心,若需要修改服务核心配置(如证书续期策略、Web服务端口等),需手动修改主机挂载目录下的配置文件并重启容器,无法实现配置的动态刷新;

  • 依赖主机目录权限:数据卷挂载依赖主机当前目录的权限设置,若主机目录权限不足(如无读写权限),会导致容器内服务无法正常读写数据,引发服务异常;

  • 单服务无负载均衡:当前为单一服务实例部署,若服务访问量较大,无法通过自身实现负载均衡,需额外搭配Nginx等反向代理工具扩展,增加了架构复杂度。

3.安装

本文在飞牛上使用Docker-Compose直接安装,直接复制粘贴创建即可运行模板已经过测试

services:
  AllinSSL:
    image: allinssl/allinssl:latest
    container_name: AllinSSL 
    # 重启策略:always表示容器无论因何种原因退出(正常退出、异常崩溃等),都会自动重启,确保服务持续可用	
    restart: always
    # 特权模式:设置为false,即容器不拥有主机的root权限,遵循最小权限原则,提升服务安全性
    privileged: false 
    # 数据卷挂载:将主机当前目录(./)挂载到容器内的/www/allinssl/data目录
    volumes:
      - ./:/www/allinssl/data
    # 端口映射:格式为“主机端口:容器端口”,将主机的1080端口映射到容器的8888端口
    # 外部可通过主机IP:1080访问AllinSSL服务的Web管理界面或相关接口
    ports:
      - 1080:8888
    # 网络模式:采用bridge(桥接)模式,容器通过主机的网络接口与外部通信,是Docker默认的网络模式
    network_mode: 'bridge'

错误提示:直接打开网页和端口会看见错误页提示,不要慌,查看容器内日志获取正确网址

正确路径为:你的IP:主机映射端口/allinssl

示例:192.168.11.111:1080/allinssl

然后会自动跳转到对应Web界面

用户名密码同样查看容器日志获取

项目github地址:allinssl/allinssl: AllinSSL 是一个集证书申请、管理、部署和监控于一体的SSL证书全生命周期管理工具。AllinSSL is an all-in-one SSL certificate lifecycle management tool that integrates certificate application, management, deployment, and monitoring.

4.项目内截图分享