
comodo_proxy是一个在Sectigo/Comodo REST API与自定义最小REST API之间的代理服务。它专为Kerberos/GSSAPI环境部署设计,通过主体(principles)处理访问控制,代码可轻松修改以支持简单认证。该镜像旨在简化与Comodo证书管理API的交互,提供更便捷的证书操作接口。
推荐使用s2i工具快速构建镜像,支持CentOS和RHEL系统:
CentOS系统
bashs2i build https://github.com/erinn/comodo_proxy docker.io/centos/python-36-centos7 comodo_proxy:latest
RHEL系统(需订阅)
bashs2i build https://github.com/erinn/comodo_proxy registry.access.redhat.com/rhscl/python-36-rhel7 comodo_proxy:latest
容器需要以下只读挂载(主机文件需确保容器可读取,容器运行用户为1001:0,需正确设置权限):
/etc/krb5.keytab:/etc/krb5.keytab:ro/etc/krb5.conf:/etc/krb5.conf:ro/etc/pki/tls/certs/comodo_client.crt:/etc/pki/tls/certs/comodo_client.crt:ro(可选)/etc/pki/tls/private/comodo_client.key:/etc/pki/tls/private/comodo_client.key:ro(可选)在SELinux环境中,可能需要自定义策略模块以允许容器访问Kerberos文件和证书。创建docker_kerberos.te文件:
temodule docker_kerberos 1.0; require { type krb5_conf_t; type krb5_keytab_t; type container_t; type cert_t; class file { getattr lock open read }; } #============= container_t ============== allow container_t krb5_conf_t:file getattr; allow container_t krb5_conf_t:file { open read }; allow container_t krb5_keytab_t:file lock; allow container_t krb5_keytab_t:file { open read }; allow container_t cert_t:file getattr; allow container_t cert_t:file { open read };
编译并加载模块:
bashcheckmodule -M -m -o docker_kerberos.mod docker_kerberos.te semodule_package -o docker_kerberos.pp docker_kerberos.mod sudo semodule -i docker_kerberos.pp
comodo_proxy通过以下环境变量进行配置:
| 环境变量 | 说明 |
|---|---|
COMODO_API_URL | Comodo API的URL,例如:https://hard.cert-manager.com/private/ws/EPKIManagerSSL?wsdl |
COMODO_CERT_TYPE_NAME | 请求使用的证书类型名称,例如:Comodo Unified Communications Certificate |
COMODO_CLIENT_CERT_AUTH | 设为True以启用Comodo API的客户端证书认证 |
COMODO_CLIENT_PUBLIC_CERT | PEM格式的客户端公钥证书路径 |
COMODO_CLIENT_PRIVATE_KEY | 客户端私钥路径 |
COMODO_CUSTOMER_LOGIN_URI | 客户登录URI,例如:example-corp |
COMODO_LOGIN | Comodo登录名或用户名 |
COMODO_ORG_ID | Comodo提供的组织ID,例如:123456 |
COMODO_PASSWORD | 登录密码 |
COMODO_REVOKE_PASSWORD | 证书吊销密码(Comodo要求,实际可能未使用) |
COMODO_SECRET_KEY | Comodo的密钥 |
GSSAPI_HOSTNAME | 覆盖容器主机名,设置为Kerberos主体名称 |
GSSAPI_SERVICE_NAME | GSSAPI服务名称,默认使用HTTP |
SECRET_KEY | Flask用于加密数据的密钥 |
DATABASE_URL | 数据库连接URL,例如:mysql+mysqlconnector://<用户>:<密码>@<主机>:<端口>/<数据库名> |
建议使用nginx或Apache作为前端代理,而非直接暴露gunicorn服务。以下是SSL/TLS配置示例:
nginxserver { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/tls/certs/www.example.com.crt"; ssl_certificate_key "/etc/pki/tls/private/www.example.com.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on; include /etc/nginx/default.d/*.conf; location / { proxy_pass http://localhost:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
apache<VirtualHost www.example.com:443> SSLEngine On ServerName www.example.com DocumentRoot /var/www/html/ ServerAdmin help@example.com SSLCertificateFile /etc/pki/tls/certs/www.example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/www.example.com.key <Directory /var/www/html/> Require all granted </Directory> RequestHeader set X-Forwarded-Proto "https" ProxyPreserveHost On ProxyPass /server-info ! ProxyPass /server-status ! ProxyPass /.well-known ! ProxyPass "/" "http://localhost:8080/" ProxyPassReverse "/" "http://localhost:8080/" </VirtualHost>
开发环境提供docker-compose.yml文件,包含所有必要挂载。默认配置信任所有头信息,仅用于开发或高度受控环境。
容器启动后,需手动初始化数据库:
export DATABASE_URI=<数据库连接URL>flask db upgrade建议创建docker-compose.override.yaml文件覆盖敏感或环境特定的配置变量。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务