我正在尝试使用 opensssl 命令签署 CSR。
证书和信任根转到 yubikey,yubikey 充当 HSM 授权机构。
每次我执行命令时,它都会要求输入 Yubikey Pin。
我怎样才能在命令行中传递PIN,这样我就不必手动输入它并且可以将其完全剔除。
openssl x509 -engine pkcs11 -req -days 30 -CAform PEM -CA "$subCert" -CAkeyform 引擎 -CAkey "pkcs11:pin-value=$pin" -sha256 -CAcreateserial -in "$csr_file" -outform DER -out " $crt_文件”
此命令不应要求输入 PIN,而应从“pkcs11:pin-value=$pin”获取 pin
一些背景:各种评论中提出不同的 pin 方法可以解决此问题,传递 pin 的选项有:
- 指定
-passin pass:123456
如 yubikey 文档中所示here https://developers.yubico.com/PIV/Guides/Certificate_authority.html.
- adding
PIN=123456
到您的 openssl 配置文件中[pkcs11_section]
- 使用您拥有的 PKCS#11 URI(通过 openssl 传递到 pkcs11 库),如下所示:
-CAKey 'pkcs11:id=%02;type=private;pin-value=$PIN'
However,所有这些似乎只影响令牌 pin,而不影响密钥 pin(这两者通常都是请求的)。我不清楚这是否是错误或功能 https://bugzilla.redhat.com/show_bug.cgi?id=1728016.
Opensc 有一些讨论 https://github.com/OpenSC/OpenSC/issues/1269建议你设置pin_cache_ignore_user_consent = true;
in the framework pkcs15
然而,当我测试它时,这并没有改变你的 opensc 配置的部分。
那里(也不清楚这是否是同一问题)似乎是使用插槽 9c(索引 02)的 yubikeys 的问题,其中 openssl 总是断言CKA_ALWAYS_AUTHENTICATE
,因此需要输入密钥的引脚。通过使用插槽 9a(索引 01,slot0-id1
or pkcs11:id=%01;
)按照建议here https://github.com/OpenSC/OpenSC/issues/1545#issuecomment-522354169.
您也许还可以使用OpenSC 的 pkcs11 工具 https://github.com/OpenSC/OpenSC/wiki/Using-pkcs11-tool-and-OpenSSL对于某些功能,似乎没有同样的问题
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)