如何在 shell 脚本中将 yubikey pin 传递给 openssl 命令

2024-03-01

我正在尝试使用 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(使用前将#替换为@)

如何在 shell 脚本中将 yubikey pin 传递给 openssl 命令 的相关文章

  • shell 脚本无法将命令行输出保存到变量中

    我正在尝试执行 shell 命令 然后使用 shell 脚本将输出保存到变量中 所以我使用这样的反引号 out ls l print out 该代码工作正常 我可以将它用于任何其他 shell 命令 但是当我尝试执行 python vers
  • Openshift 上的自定义 Node.js 版本

    我在运行自定义节点版本时遇到问题node0 10您可以在开放班次中找到墨盒here https github com DavidReinberger openshift meteor leaderboard customNode 我可以很好
  • 寻找下一个开放端口

    有没有什么办法 使用基本的 Unix 命令 找到下一个未使用的端口号 从端口 4444 开始向上 我通过 ssh 通过 openssh 进入 Windows XP 计算机 运行 Cygwin 工具并使用 bash shell 谢谢 戴夫 尝
  • 如何获取与文件类型关联的图标路径和索引?

    给定一个文件类型 例如 txt 我怎样才能得到 path index 文件类型的关联图标路径和索引 例如 我想转换 txt into Path SystemRoot system32 imageres dll Index 102 有了这些信
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • subprocess.Popen args 参数的最大长度是多少?

    我在用Popen http docs python org library subprocess html using the subprocess modulesubprocess 模块中的函数来执行命令行工具 subprocess Po
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 提高批量请求的野兽内存使用率

    我运行这个boost beast 客户端 异步 ssl http www boost org doc libs develop libs beast example http client async ssl http client asy
  • 代码签名证书选项

    我被分配了为我的公司购买数字证书来签署我们的代码的任务 我们在 Microsoft 领域开发应用程序 主要是 WPF 或基于 Web 我调查了选项 发现 Comodo 价格合理且反应灵敏 我们准备继续通过它们购买证书 但是在注册表单中有各种
  • 如何使用 iPhone SDK 访问身份配置文件和证书?

    我正在尝试使用用户通过打开电子邮件附加的 cer p12 存储的证书 身份来验证我的应用程序上的用户身份 该证书显示在手机设置应用程序的 配置配置文件 组下 有没有什么方法可以使用iphone SDK访问证书 我尝试使用安全框架 但似乎只能
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 如何在bash中仅提取两个字符串之间多行的第一个实例?

    我的文件是 abc 123 xyz abc 675 xyz 我想提取 abc 123 xyz 123 可以是任何东西 重点是我想要第一次出现 我尝试使用这个 sed n abc xyz p filename 但这给了我所有的例子 我怎样才能
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • 用于保护网站安全(使用 SSL)时,数字证书如何工作?

    请帮助我了解整个过程是如何进行的 据我了解 Web 浏览器包含 verisign Entrust Comodo 等证书颁发机构 CA 的根证书 但是当用户访问安全页面时到底会发生什么 Web 浏览器是否向 CA 服务器发送请求来验证证书 还
  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • 使用 rbenv 在 MacOS 上安装 Ruby 2.6.0 失败

    我在 Mojave 上有一台 Mac 它无法安装开发所需的一些基本内容 rbenv install 2 6 0 Downloading openssl 1 1 1d tar gz gt https dqw8nmjcqpjn7 cloudfr
  • 链和主证书添加之间 X509 结构的正确释放是否有所不同?

    我需要从内存中添加 PEM 类型证书 这意味着我无法使用内置的从文件读取帮助程序 我的问题是没有关于如何释放内存的文档 现在我最好的猜测如下 SSL CTX use certificate X509 structure SHOULD be
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 为什么减法返回 - 符号

    我对简单的减法有疑问 但我不明白出了什么问题 我的代码 start date s N cut b1 13 Treatment end date s N cut b1 13 delta expr end start echo delta de

随机推荐