此仓库已被弃用 - 请使用 https://hub.docker.com/r/keyfactor/ejbca-ce
EJBCA® 是一个PKI证书颁发机构软件。它健壮、灵活、高性能、可扩展、平台独立且基于组件,可以独立使用或作为服务组件与其他应用程序集成。有关完整的功能列表,请访问 [***]
EJBCA由Keyfactor开发并提供商业支持。EJBCA Community Edition是EJBCA Enterprise的LGPL许可子集。
EJBCA实例可部署用于执行以下一项或多项功能,从小规模到超大规模部署:
证书颁发机构(CA)为设备、人员及其他任何实体颁发完全可定制的X.509证书。
这些证书可用于提供安全性、证明身份、保护通信(如TLS/DTLS)或证明制造的IoT设备的真实性。
PKI领域中用于颁发、吊销和其他常见任务的标准化协议允许平滑集成和高度自动化。
验证机构(VA)可以回答证书是否仍然有效的问题。
通常,在线证书状态协议(OCSP)用于在线检查,或者在网络连接不稳定或有空气间隙的环境中通过提供证书吊销列表(CRL)来进行验证。
注册机构(RA)是一个自助门户,可以将证书管理部分或全部委托给组织中授权的团队成员。
运行EJBCA容器的系统应满足以下最低要求:
可以通过覆盖环境变量来自定义容器的行为。
启动容器时不设置任何环境变量将:
启动临时实例,任何对实例具有未认证网络访问权限的人都可以管理系统:
bashdocker run -it --rm -p 80:8080 -p 443:8443 -h mycahostname -e TLS_SETUP_ENABLED="simple" primekey/ejbca-ce
系统完全启动后,访问 https://mycahostname:443/ejbca/adminweb/ 以访问EJBCA管理GUI,可在其中管理实例。在EJBCA管理GUI的菜单中,您会找到指向其他"文档"的链接。
注意:TLS_SETUP_ENABLED="simple" 不推荐用于除没有公共网络访问的临时测试之外的场景。
停止容器后,所有数据都将丢失。(如果要在容器文件系统中持久化数据,请跳过--rm标志,或使用下面描述的DATABASE_JDBC_URL将数据持久化到外部数据库中。)
启动具有客户端证书认证访问权限的临时实例,用于管理实例:
bashdocker run -it --rm -p 80:8080 -p 443:8443 -h mycahostname primekey/ejbca-ce
在控制台输出中,您将找到有关如何注册初始SuperAdmin客户端证书密钥库的说明,该密钥库需要导入到您的浏览器中。
系统完全启动后,访问 https://mycahostname:443/ejbca/adminweb/ 以访问EJBCA管理GUI,可在其中管理实例。在管理GUI的菜单中,您会找到指向其他"文档"的链接。
停止容器后,所有数据都将丢失。(如果要在容器文件系统中持久化数据,请跳过--rm标志,或使用下面描述的DATABASE_JDBC_URL将数据持久化到外部数据库中。)
更复杂的部署示例可在https://github.com/primekeydevs/containers%E4%B8%8A%E6%89%BE%E5%88%B0%E3%80%82
EJBCA使用共享数据库模型进行集群,其中所有EJBCA节点都具有一致的数据视图。因此,EJBCA集群需要使用外部SQL数据库。MariaDB与Galera集群是此类数据库的开源示例,它可以通过同步多主复制实现高可用性和一致性。
DATABASE_JDBC_URL:容器中还捆绑了MariaDB/MySQL和Postgres的JDBC驱动程序,通过指定相应的JDBC URL即可直接使用。出于历史原因,MariaDB JDBC URL以jdbc:mysql:开头。
jdbc:h2:/mnt/persistent/ejbcadb;DB_CLOSE_DELAY=-1:使用捆绑的H2数据库,在容器正常停止时会持久化。这是默认值。jdbc:h2:mem:ejbcadb;DB_CLOSE_DELAY=-1:使用捆绑的H2数据库,容器停止时不会持久化任何内容。jdbc:mysql://database:3306/ejbca?characterEncoding=UTF-8:连接到主机database上名为ejbca的MariaDB/MySQL实例jdbc:postgresql://database/ejbca:连接到主机database上名为ejbca的Postgres实例DATABASE_USER:访问外部数据库的凭据中的用户名部分。使用H2数据库时不需要。
DATABASE_PASSWORD:访问外部数据库的凭据中的密码部分。使用H2数据库时不需要。
将容器配置为代理后端将禁用传统安装工作流或任何本地TLS服务器端证书生成。除非另行配置,否则管理UI将对任何具有网络访问权限的人开放。
在前端代理(如Nginx或Apache Httpd)后面运行容器以终止TLS连接,目前是任何类生产部署的预期设置。
将代理后端协议端口绑定到:
PROXY_AJP_BIND:使用此变量中IP地址绑定的AJP代理端口:8009运行容器。
PROXY_HTTP_BIND:运行容器时配置两个HTTP后端代理端口:8081和:8082绑定到此变量中的IP地址。端口8082将接受SSL_CLIENT_CERT HTTP头。
TLS_SETUP_ENABLED:无代理后端设置,但通过将此设置为"false"仍可禁用容器内部TLS设置。应用程序管理UI将授予任何能够连接的人完全访问权限。目前,如果没有前端的URL内容重写代理,EJBCA的管理GUI在此设置下功能有限。通过将此设置为"simple",您将获得管理CA和服务器端TLS证书,但任何人都可以通过HTTPS管理系统。这种未认证访问在"管理GUI"→"角色"→"超级管理员角色"→"成员"中配置的PublicAccessAuthenticationToken允许下进行。
使用电子邮件通知时,EJBCA默认使用应用服务器中的java:/EjbcaMail服务。应用服务器的standalone.xml中预先配置了此类邮件服务,其中包含SMTP主机和端口的环境变量。
SMTP_DESTINATION:用于发送电子邮件的SMTP服务器的主机名/IP,默认为localhost(但容器中没有SMTP服务器)。
SMTP_DESTINATION_PORT:主机上使用的SMTP端口,默认为25。
您可以在命令行上使用带有'-e'参数的参数设置这些变量,参见快速入门中的示例用法。
您可以设置其他环境变量。您可以通过在运行的容器(container_name)上运行以下命令列出所有环境变量:
bashdocker exec -it container_name printenv
例如,您可以使用'-e LOG_LEVEL_APP=DEBUG'启用DEBUG日志记录。
容器中的ejbca.ear文件构建时启用了所谓的allow.external-dynamic.configuration=true,这意味着它按优先级顺序查找配置属性:
如果您想在不同于默认端口(443)的HTTPS端口上运行EJBCA,例如:
bashdocker run -it --rm -p 80:8080 -p 9443:8443 -h mycahostname primekey/ejbca-ce
一切都按预期工作,但公共Web中有一个链接[***]
您可以通过上述属性覆盖来修复此问题。
在运行docker的机器上,创建一个目录并创建文件web.properites
向文件添加以下内容:
httpserver.external.privhttps=9443
使用以下命令运行容器
bashdocker run -it --rm -p 8080:8080 -p 9443:8443 -h mycahostname -v $PWD/config/web.properties:/opt/primekey/ejbca/conf/web.properties primekey/ejbca-ce
现在,您可以浏览到https://localhost:8443,看到"其他"→"管理"链接是:https://localhost:9443/ejbca/adminweb/
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务