Appearance
安装部署
本文使用交付包中的 deploy.sh 在 Linux 服务器上安装 HiHTTPS。完成后,您应能通过 HTTPS 管理入口创建管理员并登录。
默认交付使用单个应用容器,数据库、证书和运行数据保存在部署目录的 hihttps_data/ 中。下文以 /opt/hihttps 为安装目录,Compose 服务名及容器名均为 hihttps;使用其他目录时,请相应调整命令。
1. 准备环境与交付文件
服务器要求
| 项目 | 要求 |
|---|---|
| 系统 | Linux,amd64 或 arm64;发行版与依赖兼容性需在部署前确认 |
| Docker | rootful Docker Engine 20.10.10+,不支持 rootless |
| Compose | Docker Compose 2.17.0+ |
| 数据盘 | 具有可靠文件锁的本地持久存储,不推荐 NFS/CIFS |
| 磁盘空间 | 为安装包、镜像暂存及解包、运行数据、日志和备份预留空间,不能只按压缩包大小估算 |
| 权限 | 执行用户拥有部署目录,能够操作 Docker;修改系统配置时具备相应权限 |
先检查现有环境:
bash
docker version
docker compose version离线包不包含 Docker、Compose 或宿主机依赖的安装包。完全离线的环境需提前准备这些依赖。
交付文件
通过可信交付渠道取得与服务器架构匹配的镜像包、部署脚本和 HiHTTPS 许可证,将其放在同一目录:
text
/opt/hihttps/
├── deploy.sh
├── hihttps-<tag>-<arch>.tar.gz
└── hihttps.license<tag> 为发行版本,<arch> 为服务器架构;例如 x86_64 对应 amd64,aarch64 对应 arm64。具体部署数量和使用范围以交付授权条款为准,不要复用来源不明的镜像或许可证。
2. 确认端口与网络
默认部署使用 host 网络,不需要额外添加 Docker 端口映射。请在启动前确认端口未被其他进程占用,并按实际访问范围配置防火墙、安全组和 NAT。
| 方向 | 地址或端口 | 用途与放行范围 |
|---|---|---|
| 管理客户端到 HiHTTPS | HTTPS / 81/tcp | 管理入口;仅对管理网段或 VPN 放行,首次初始化前就应限制来源 |
| 业务客户端到 HiHTTPS | 80/tcp、443/tcp | 默认 HTTP/HTTPS 业务入口,按计划使用的协议放行 |
| 业务客户端到 HiHTTPS | 自定义 TCP/UDP 端口 | 由访问服务或端口转发规则决定,只放行业务需要的端口和协议 |
| HiHTTPS 到后端 | 后端实际地址和端口 | 转发业务请求,部署前确认可达 |
| HiHTTPS 到 CertCloud | 默认 api.certcloud.cn:443 | 申请、同步、刷新及续期证书时需要 |
| HiHTTPS 到 DNS | 环境指定的 DNS 服务 | 解析 CertCloud 和后端等所需域名 |
宿主机还需为内部服务保留 3030、8000、8188 端口,不要将这些端口分配给业务,也不应向公网放行。
离线安装不等于所有功能离线运行
已有证书导入和本地代理可按现场网络使用;CertCloud 申请、同步和续期仍需访问 CertCloud。使用文件域名验证时,还需要 CA 能从外部访问验证入口,详见域名验证。
3. 启动服务
确保执行用户拥有安装目录;如果使用 root 部署,目录与后续运维也应由 root 管理,不要在不同所有者之间随意切换。
bash
cd /opt/hihttps
chmod 700 .
chmod 600 hihttps.license
bash deploy.sh --no-tune --skip-firewall-hint- 脚本会识别同目录的普通、可读
hihttps.license文件。不要使用目录或符号链接代替许可证文件。 --no-tune跳过系统性能配置调整。--skip-firewall-hint跳过脚本的防火墙处理;访问规则由运维人员按所需来源范围配置。- 默认 CertCloud 地址为
https://api.certcloud.cn。现场确需使用其他已确认地址时,可加--cmc-host <URL>;已有部署未指定该参数时沿用原配置。
脚本检查环境、数据目录、端口和镜像后,生成 .env、docker-compose.yml 并启动服务。成功后目录中会出现 hihttps_data/。
.env、许可证、数据目录和备份均需受控保管。不要删除已有数据目录来处理安装报错,也不要同时设置授权码与授权文件两种来源。启动失败时先查看部署故障。
4. 初始化管理员
在受控管理网络中打开:
text
https://<服务器IP>:81/首次安装采用自签管理证书,浏览器可能提示不受信任。先核对访问的是自己的服务器,不要在来源不明的页面输入管理员密码。正式使用时,建议按配置管理后台 HTTPS替换为受信任证书。
- 系统尚无用户时会显示初始化页面,填写管理员姓名、邮箱和密码。
- 保存并登录;后续使用该邮箱和密码访问管理界面。没有固定的默认管理员密码。
- 若出现首次配置向导,按实际需求完成或跳过,后续仍可在设置中配置。
- 核对侧栏显示的授权公司名称。需要在线证书功能时,再配置CertCloud 账号。
已有部署应使用已有账号登录,不要为重新显示初始化页面而删除数据库或执行重置。
5. 完成检查
在安装目录执行以下只读检查:
bash
cd /opt/hihttps
docker compose ps
docker inspect hihttps --format '{{.HostConfig.NetworkMode}}'
docker inspect hihttps --format '{{.State.Health.Status}}'
curl -kfsS https://127.0.0.1:81/api/预期网络模式为 host、健康状态为 healthy,API 检查返回包含 status 为 OK 的响应。此处 curl -k 仅用于服务器本机对默认自签管理入口做连通性检查,不能替代业务 HTTPS 的证书验收。
再确认:
- 管理客户端能使用新建账号登录,授权公司信息正确。
- 计划使用 CertCloud 时,对应账号配置与服务连接可用。
- 能按发布第一个 HTTPS 服务完成证书导入、服务绑定和真实客户端访问。
- 在允许中断业务的维护窗口验证重启后账号、配置和证书仍在。
- 已导出系统加密备份,并分别保管备份文件和口令。
日常运维
查看最近的容器日志,不会主动停止服务:
bash
cd /opt/hihttps
docker compose logs --tail=100 hihttps以下命令会改变运行状态,请按需选择,不要整段连续执行。重启或停止会影响管理入口及业务代理:
| 任务 | 在安装目录执行 |
|---|---|
| 重启服务 | docker compose restart |
| 停止服务 | docker compose stop |
| 启动并等待健康检查 | docker compose up -d --wait --wait-timeout 180 |
deploy.sh 常用参数
| 参数 | 作用 |
|---|---|
--image-tag <tag> | 指定发行版本,匹配当前服务器架构的唯一镜像归档 |
--cmc-host <URL> | 指定 CertCloud 服务地址 |
--no-tune | 不修改系统性能配置 |
--skip-firewall-hint | 跳过脚本的防火墙处理,由运维人员管理访问规则 |
--yes / -y | 非破坏性问题使用默认选项,不绕过已有数据预检 |
--diagnose | 仅生成部署诊断报告 |
--reset | 不可逆删除完整 hihttps_data/,不是升级或找回密码的方法 |
需要诊断时执行 bash deploy.sh --diagnose。配置检查通过后会生成 diagnostic-*.txt,其中可能包含容器和部署日志;外发前必须检查并脱敏,不要发送 .env、许可证或私钥。
