
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本仓库是开源项目CZERTAINLY的一部分。有关该项目的更多信息,请访问https://github.com/CZERTAINLY/CZERTAINLY%E4%BB%93%E5%BA%93%EF%BC%8C%E5%8C%85%E6%8B%AC%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97%E3%80%82
Core为CZERTAINLY平台提供基础功能,实现证书生命周期管理逻辑并处理所有相关任务,可视为平台的"大脑"。
Core负责两种类型的通信:
Connector提供特定技术的功能证书和加密密钥的管理通过CZERTAINLY的Profiles对象抽象实现,包括:
RA Profile - 证书生命周期管理服务配置Token Profile - 加密服务配置和密钥管理Compliance Profile - 证书及相关对象的合规要求更多信息请参考[***]
Core访问控制运行需满足以下要求:
OPA_BASE_URL环境变量配置OPA服务URL。警告
当Auth或OPA缺失时,Core将无法运行。
注意
OPA可与Core运行在同一系统或外部托管。为提高权限评估性能,通常与Core运行在同一主机(如作为sidecar)。
证书库存包含平台中发现或导入的所有Certificates。每个Certificate提供可管理的全面一致信息。
每个Certificate支持以下基本生命周期操作:
操作可由Core自动执行,也可由用户手动执行。
密钥库存包含所有可用的Keys。每个Key提供通过Token Profile管理的全面一致信息。
Core支持以下PQC算法:FALCON、CRYSTALS-Dilithium、SPHINCS+。该支持为实验性,不建议用于生产环境,因为PQC算法仍在开发中且未完全标准化。
Core支持以下证书管理协议:
Core以Docker容器形式提供。使用czertainly/czertainly-core:tagname从仓库拉取所需镜像。可通过以下环境变量进行配置:
| 变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
JDBC_URL | 数据库访问的JDBC URL | 是 | N/A |
JDBC_USERNAME | 数据库访问用户名 | 是 | N/A |
JDBC_PASSWORD | 数据库访问密码 | 是 | N/A |
DB_SCHEMA | 使用的数据库模式 | 否 | core |
PORT | 服务暴露端口 | 否 | 8080 |
HEADER_NAME | 客户端证书所在的请求头名称 | 否 | ssl-client-cert |
HEADER_ENABLED | 是否从请求头获取证书 | 是 | N/A |
TS_PASSWORD | 可信证书存储密码 | 是 | N/A |
OPA_BASE_URL | Open Policy Agent基础URL | 是 | N/A |
AUTH_SERVICE_BASE_URL | 认证服务基础URL | 是 | N/A |
AUTH_TOKEN_HEADER_NAME | JSON ID内容的请求头名称 | 否 | X-USERINFO |
SCHEDULED_TASKS_ENABLED | 是否启用证书状态定期更新 | 否 | true |
JAVA_OPTS | 运行应用的自定义Java系统属性 | 否 | N/A |
TRUSTED_CERTIFICATES | PEM编码的额外可信证书列表 | 否 | N/A |
SCHEDULER_BASE_URL | 调度器服务基础URL | 是 | N/A |
RABBITMQ_HOST | RabbitMQ消息主机 | 是 | N/A |
RABBITMQ_PORT | RabbitMQ消息端口 | 否 | 5672 |
RABBITMQ_USERNAME | RabbitMQ消息用户名 | 是 | N/A |
RABBITMQ_PASSWORD | RabbitMQ消息密码 | 是 | N/A |
RABBITMQ_VHOST | RabbitMQ消息虚拟主机 | 否 | czertainly |
SETTINGS_CACHE_REFRESH_INTERVAL | 从数据库刷新设置缓存的定期间隔(秒) | 否 | 30 |
Core支持OpenTelemetry以生成信号(指标、追踪、日志)到可观测性系统。可通过以下环境变量配置OpenTelemetry:
| 变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
OTEL_SDK_DISABLED | 禁用OpenTelemetry SDK。支持值:true、false。默认禁用 | 否 | true |
OTEL_LOGS_EXPORTER | 日志导出器。支持值:none、otlp、logging | 否 | none |
OTEL_METRICS_EXPORTER | 指标导出器。支持值:none、otlp、logging | 否 | none |
OTEL_TRACES_EXPORTER | 追踪导出器。支持值:none、otlp、logging | 否 | none |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT | 日志数据端点URL(可选端口)。使用OTLP/HTTP时通常以v1/logs结尾 | 否 | http://localhost:4317 |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL | 日志导出器协议。支持值:grpc、http/protobuf、http/json | 否 | grpc |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT | 指标数据端点URL(可选端口)。使用OTLP/HTTP时通常以v1/metrics结尾 | 否 | http://localhost:4317 |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL | 指标导出器协议。支持值:grpc、http/protobuf、http/json | 否 | grpc |
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | 追踪数据端点URL(可选端口)。使用OTLP/HTTP时通常以v1/traces结尾 | 否 | http://localhost:4317 |
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL | 追踪导出器协议。支持值:grpc、http/protobuf、http/json | 否 | grpc |
如需Core与外部系统通信,可能需要配置代理。通过以下环境变量为Docker容器启用代理:
| 变量 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
HTTP_PROXY | HTTP连接代理URL。格式:<protocol>://<proxy_host>:<proxy_port> 或 <protocol>://<user>:<password>@<proxy_host>:<proxy_port> | 否 | N/A |
HTTPS_PROXY | HTTPS连接代理URL。格式:<protocol>://<proxy_host>:<proxy_port> 或 <protocol>://<user>:<password>@<proxy_host>:<proxy_port> | 否 | N/A |
NO_PROXY | 不通过代理的主机名逗号分隔列表 | 否 | N/A |
示例值:
HTTP_PROXY=http://user:password@proxy.example.com:3128HTTPS_PROXY=http://user:password@proxy.example.com:3128NO_PROXY=localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,cattle-system.svc,.svc,.cluster.local,my-domain.localbashdocker run -d \ --name czertainly-core \ -p 8080:8080 \ -e JDBC_URL=jdbc:postgresql://postgres:5432/czertainly \ -e JDBC_USERNAME=czertainly \ -e JDBC_PASSWORD=securepassword \ -e AUTH_SERVICE_BASE_URL=http://auth:8080 \ -e OPA_BASE_URL=http://opa:8181 \ -e TS_PASSWORD=truststorepassword \ -e SCHEDULER_BASE_URL=http://scheduler:8080 \ -e RABBITMQ_HOST=rabbitmq \ -e RABBITMQ_USERNAME=rabbituser \ -e RABBITMQ_PASSWORD=rabbitpass \ -e HEADER_ENABLED=true \ docker.xuanyuan.run/czertainly/czertainly-core:latest
yamlversion: '3.8' services: core: image: czertainly/czertainly-core:latest container_name: czertainly-core ports: - "8080:8080" environment: - JDBC_URL=jdbc:postgresql://postgres:5432/czertainly - JDBC_USERNAME=czertainly - JDBC_PASSWORD=securepassword - AUTH_SERVICE_BASE_URL=[***] - OPA_BASE_URL=[***] - TS_PASSWORD=truststorepassword - SCHEDULER_BASE_URL=[***] - RABBITMQ_HOST=rabbitmq - RABBITMQ_PORT=5672 - RABBITMQ_USERNAME=rabbituser - RABBITMQ_PASSWORD=rabbitpass - RABBITMQ_VHOST=czertainly - HEADER_ENABLED=true - SCHEDULED_TASKS_ENABLED=true depends_on: - postgres - rabbitmq - auth - opa - scheduler
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务