在 Mac 上将 OPENSSL 与 PKCS11 和 SoftHSM 配置引擎结合使用

在 Mac 上将 OPENSSL 与 PKCS11 和 SoftHSM 配置引擎结合使用

目前我在使用 HSM 设置 Mac 时遇到问题

当前配置

HSM: SoftHSM
OpenSSL, PKCS11
OS: MacOS Catalina

我正在使用这个配置

openssl_conf = openssl_init

[openssl_init]
engines = engine_section

[engine_section]
pkcs11 = pkcs11_section

[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/local/Cellar/libp11/0.4.11/lib/engines-1.1/pkcs11.dylib
MODULE_PATH = /usr/local/lib/softhsm/libsofthsm2.so
init = 0

[ req ]
distinguished_name = req_dn

[ req_dn ]
commonName = foobar

然后我尝试使用此 cmd 从 HSM 生成认证

OPENSSL_CONF=engine.conf openssl req -new -x509 -subj "/CN=MyCertTEST" -engine pkcs11 -keyform engine -key "pkcs11:object=mykey1;pin-value=mysecret1" -outform der -out mycert.der         

注意:我已经将密钥设置到 HSM 中

怎么看起来它显示错误为

Error configuring OpenSSL
4569882220:error:26FFF074:engine routines:CRYPTO_internal:no such engine:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.140.1/libressl-2.8/crypto/engine/eng_list.c:367:id=dynamic
4569882220:error:26FFF066:engine routines:CRYPTO_internal:engine configuration error:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.140.1/libressl-2.8/crypto/engine/eng_cnf.c:197:section=pkcs11_section, name=dynamic_path, value=/usr/local/Cellar/libp11/0.4.11/lib/engines-1.1/pkcs11.dylib
4569882220:error:0EFFF06D:configuration file routines:CRYPTO_internal:module initialization error:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.140.1/libressl-2.8/crypto/conf/conf_mod.c:224:module=engines, value=engine_section, retcode=-1      
failed to load configuration

不确定我在配置部分遗漏了什么或对配置引擎的方式有任何误解

谁能指导我这件事。谢谢

答案1

您看到的这种行为很可能是由于较新的 macOS 版本默认使用 LibreSSL 造成的。

您可以通过运行来验证这一点

openssl version

在您的终端中。

从您的 OpenSSL 配置文件中,我可以看到您已经在使用brew,这意味着您可以简单地安装该openssl包并使用它。至少这对我有用。

可能还有一种方法可以使用 LibreSSL 安装,但我不知道如何操作。

相关内容