EJBCA¶
`EJBCA<https://www.ejbca.org/>`__ 是一个 PKI 证书管理机构软件,可作为开放源代码使用。
要在 EJBCA 中使用 NetHSM,首先需要`设置<pkcs11-setup.html>`__ NetHSM PKCS#11 模块。
然后在``/etc/ejbca/conf/web.properties`` 文件中添加一个条目,配置 EJBCA 以使用 NetHSM PKCS#11 模块:
cryptotoken.p11.lib.418.name=NetHSM
cryptotoken.p11.lib.418.file=/usr/lib/nitrokey/libnethsm_pkcs11.so
备注
名称中的``418`` 是一个索引,对于配置文件中的每个 PKCS#11 模块都必须是唯一的。
要从接口生成密钥,需要在``p11nethsm.conf`` 文件中将``enable_set_attribute_value`` 选项设为 true。
警告
由于与 Sun PKCS11 提供程序的集成问题,从 EJBCA 生成的密钥将使用随机名称,而不是接口中给出的名称。
重新启动 EJBCA 后,你可以在 EJBCA 管理 GUI``https://mycahostname/ejbca/adminweb/cryptotoken/cryptotokens.xhtml`` 添加一个新的加密令牌。加密令牌类型是``PKCS#11 Crypto Token``,加密令牌名称是``NetHSM``。
执行示例¶
如果您想用给出的示例进行实验,可以使用 git 克隆`nethsm-pkcs11 仓库<https://github.com/Nitrokey/nethsm-pkcs11>`__ 并运行以下命令:
配置 NetHSM,可以是一个真正的 NetHSM,也可以是一个容器。更多信息,请参阅`入门指南<getting-started>`__。
在``container/ejbca/p11nethsm.conf`` 中更改 libnethsm_pkcs11 配置,使其与 NetHSM 匹配。
建造集装箱
docker build -f container/ejbca/Dockerfile . -t pkcs-ejbca
运行容器。
docker run --rm -it -p 9443:8443 -p 9080:8080 -h mycahostname -e TLS_SETUP_ENABLED="simple" pkcs-ejbca
集装箱可在`https://localhost:9443/<https://localhost:9443/>`___。