Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows在安装openssl生成的p12密钥时要求输入p12密码_Windows_Openssl_X509_Pkcs#12 - Fatal编程技术网

Windows在安装openssl生成的p12密钥时要求输入p12密码

Windows在安装openssl生成的p12密钥时要求输入p12密码,windows,openssl,x509,pkcs#12,Windows,Openssl,X509,Pkcs#12,如果我使用openssl生成p12证书,如下所示: openssl pkcs12 -export -in myprivatecert.pem -nokeys -out mycert.p12 即使我要求openssl不要导出私钥,为什么windows在安装证书时仍然需要私钥密码 我想我遗漏了一些东西。密码用于PKCS12文件本身,而不是私钥。您可以通过添加“-password pass:”来指定空白密码,如下所示: $ openssl pkcs12 -password pass: -export

如果我使用openssl生成p12证书,如下所示:

openssl pkcs12 -export -in myprivatecert.pem -nokeys -out mycert.p12
即使我要求openssl不要导出私钥,为什么windows在安装证书时仍然需要私钥密码


我想我遗漏了一些东西。

密码用于PKCS12文件本身,而不是私钥。您可以通过添加“-password pass:”来指定空白密码,如下所示:

$ openssl pkcs12 -password pass: -export -in myprivatecert.pem -nokeys -out mycert.p12
$ openssl x509 -in myprivatecert.pem -outform DER -out mycert.der
Windows仍会提示您输入密码,但您可以将其保留为空,导入将正常工作

如果在Windows上导入的只是证书,而没有密钥,则也可以使用DER格式,如下所示:

$ openssl pkcs12 -password pass: -export -in myprivatecert.pem -nokeys -out mycert.p12
$ openssl x509 -in myprivatecert.pem -outform DER -out mycert.der

这样做的一个好处是,当您在Windows上双击此文件时,它会识别der扩展名,并且您可以在导入之前查看证书详细信息。此外,不会出现密码提示。

谢谢Jim,这很有道理。:)