域名与证书管理

域名绑定(domain:bind)

命令用法

# 绑定域名 + HTTPS 端口
docker exec uldisk-dev-uldisk-1 php think domain:bind \
    --domain=cdn.example.com \
    --port=8443

# 仅绑域名(不含端口,nginx 用 80)
docker exec uldisk-dev-uldisk-1 php think domain:bind \
    --domain=cdn.example.com

# 清除绑定
docker exec uldisk-dev-uldisk-1 php think domain:bind \
    --domain=

效果

  1. 更新 config 表:
    • system.bind_domain = 绑定的域名
    • system.bind_port = 绑定的端口
  2. 生成 nginx 站点配置(source/docker/nginx-site.conf.template 渲染)
  3. 不自动 reload nginx(需手动 nginx -s reload 或重启容器)

校验规则

规则 说明
域名格式 合法域名或 IP(正则校验)
端口范围 1-65535
禁用端口 80 和 443 由证书管理(J9)处理,domain:bind 不接受
空域名 清除绑定 + 删除 nginx 站点配置

证书管理(W6-J9)

管理界面

管理后台 → 证书管理:

  • 上传 PEM 格式证书 + 私钥
  • 查看 / 删除证书
  • 证书到期 / 即将到期标识

证书字段

字段 说明
domain 绑定域名
cert PEM 格式证书内容
key PEM 格式私钥内容
expires_at 过期时间
issuer 颁发者

上传证书

  1. 管理后台 → 证书管理 → 上传
  2. 填写域名
  3. 粘贴 PEM 证书内容(-----BEGIN CERTIFICATE----- 开头)
  4. 粘贴 PEM 私钥内容(-----BEGIN PRIVATE KEY----------BEGIN RSA PRIVATE KEY----- 开头)
  5. 提交

安全处理

  • 私钥打码显示(首末 4 字符 + ····
  • 证书和私钥文件存储到服务器指定目录
  • nginx-ssl.conf.template 自动渲染引用

nginx SSL 配置

模板文件 source/docker/nginx-ssl.conf.template

server {
    listen 443 ssl http2;
    server_name {{domain}};

    ssl_certificate     /path/to/{{domain}}.crt;
    ssl_certificate_key /path/to/{{domain}}.key;

    # ... 路由配置 ...
}

生成自签名证书(测试用)

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem \
    -days 365 -nodes -subj "/CN=localhost"

然后在管理后台上传 cert.pemkey.pem

nginx 配置模板

nginx-site.conf.template

HTTP 站点配置模板,由 domain:bind 渲染。包含:

  • 域名 + 端口监听
  • PHP-FPM fastcgi 代理
  • X-Accel-Redirect 零拷贝下载 location
  • WebDAV / S3 / raw 路由

nginx-ssl.conf.template

HTTPS 站点配置模板,由证书管理渲染。包含:

  • SSL 证书 / 私钥引用
  • HTTP/2
  • HSTS 头
  • 与 HTTP 模板相同的路由配置

配置项

说明
system.bind_domain 当前绑定的域名
system.bind_port 当前绑定的 HTTPS 端口
system.domain 站点域名(用于生成外链 URL)

原文标题:域名与证书管理

原文文档:uldisk

原文地址:/read/augushong/ul-disk/zh-cn/1.0.0/6a3e73c598601/6a3e73d90f708.html

原文平台:奥宏文档

1.0.0