在Git-Bash-Windows中'openssl pkcs 12'不提示输入密码

9lowa7mx  于 2022-11-18  发布在  Windows
关注(0)|答案(3)|浏览(237)

SSL证书颁发机构向我发送了.pfx的签名证书,该证书受密码保护;所以我需要把它转换成.crt文件。
第一次尝试是调用openssl pkcs12 -in server.pfx -out server.crt -nokeys -clcerts,只是在Git-Bash Windows中;但是它会一直等待,没有输出也没有提示。最后,我切换到Linux(RHEL 7),同样的命令工作正常。但是,在Windows Git-Bash中运行时,它缺少输入密码的提示,并且将永远挂在那里。
我想知道是否有什么可以让它在Windows Git-Bash中工作,例如命令参数等,因为我的工作电脑仍然运行Windows操作系统。

Linux屏幕截图:

[root@host]# openssl pkcs12 -in server.pfx -out server.crt -nokeys -clcerts
Enter Import Password:
MAC verified OK
[root@host]#
t8e9dugd

t8e9dugd1#

首先,在Windows 10上,你可以通过WSL2切换到你选择的任何Linus发行版。
其次,在Windows上,我总是必须在命令行中包含密码:

openssl pkcs12 -password pass:aPassword -in server.keystore.pfx -nokeys -clcerts -out server.cert
# or
openssl pkcs12 -passin pass:aPassword -in server.keystore.pfx -nokeys -clcerts -out server.cert
oxcyiej7

oxcyiej72#

在Git-Bash上,你必须在前面使用winpty;例如,可以是,

$ winpty openssl pkcs12 -in server.keystore.pfx -nokeys -clcerts -out server.cert
hgc7kmma

hgc7kmma3#

经过一整天的思考,我才知道怎么做。你可以参考这个链接的解释https://omgdebugging.com/2019/03/17/openssl-hanging-up-when-trying-to-convert-certificates/

  • “此问题的原因是Git Bash控制台将输入传递到OpenSSL命令的方式不同。解决此问题的方法是在整个命令前添加单词winpty。这样做将使提示符输入您的密码,再次确认密码,完成后,您将注意到已生成PFX文件。"*

相关问题