pkcs12 "path/to/pkcs12_container"
openvpn ~/openvp_config
它会要求input私钥的密码(我在使用Chrome导出时input的密码): Enter Private Key Password:...
问题:如何从pkcs12中删除私钥的密码?
也就是说,创build不需要密码的pkcs12文件。
(似乎我已经在一年前做了这个,现在忘记了。该死的)
它可以通过各种openssl调用来实现。
首先提取证书:
openssl pkcs12 -clcerts -nokeys -in "YourPKCSFile" -out certificate.crt -password pass:PASSWORD -passin pass:PASSWORD
其次,CA密钥:
openssl pkcs12 -cacerts -nokeys -in "YourPKCSFile" -out ca-cert.ca -password pass:PASSWORD -passin pass:PASSWORD
现在,私钥:
openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -password pass:PASSWORD -passin pass:PASSWORD -passout pass:TemporaryPassword
现在删除密码:
openssl rsa -in private.key -out "NewKeyFile.key" -passin pass:TemporaryPassword
把新的PKCS文件放在一起:
cat "NewKeyFile.key" > PEM.pem
cat "certificate.crt" >> PEM.pem
cat "ca-cert.ca" >> PEM.pem
并创build新的文件:
openssl pkcs12 -export -nodes -CAfile ca-cert.ca -in PEM.pem -out "NewPKCSWithoutPassphraseFile"
现在你有一个新的PKCS12密钥文件,私钥部分没有密码。
我find的最简单的解决scheme是
openssl pkcs12 -in protected.p12 -nodes -out temp.pem # -> Enter password
openssl pkcs12 -export -in temp.pem -out unprotected.p12 # -> Just press [return] twice for no password
rm temp.pem
这可以轻松地完成一步没有临时文件:
openssl pkcs12 -in "PKCSFile" -nodes | openssl pkcs12 -export -out "PKCSFile-Nopass"
用密码回答“input密码”提示。 用<CR>回答出口Passowrd提示
完成。
请注意,这将处理可能在捆绑中的任意数量的中间证书。
我强烈build议小心处理生成的文件; 首先将umask设置为377(非unix:这意味着只有所有者才能读取创build的文件),这将是一个好主意。我想这是2个步骤,如果您的默认umask是宽容的…
现在,私钥:
openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -password pass:PASSWORD -passin pass:PASSWORD -passout pass:TemporaryPassword
现在删除密码:
openssl rsa -in private.key -out "NewKeyFile.key" -passin pass:TemporaryPassword
这2个步骤可以被replace
openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -nodes