由于某些版本的 OpenVPN 链接到新的 OpenSSL 版本,该版本不接受旧的 p12 文件。
示例:OpenVPN 2.5.9 接受我的 p12 文件。 OpenVPN 3.0.13 不再存在了。
在 stackoverflow 上找不到这个问题,而且大多数谷歌结果都非常稀疏,没有解决方案。
因此我将提供我的小脚本来帮助我解决这个问题。
正如问题中所说。这个脚本帮助我解决了这个问题(必须自行承担风险,并在使用之前了解脚本的作用:))。
#!/bin/bash
if [ ! $# -eq 1 ]; then
echo "Usage: $0 old_p12_file"
exit 1
fi
tempdir=$(mktemp -d)
tempcrt=$tempdir/$1-tmp.crt
tempkey=$tempdir/$1-tmp.key
echo "Provide Password for OLD key"
openssl pkcs12 -in $1 -out $tempcrt -nodes -nokeys -legacy
echo "Provide Password for OLD key AGAIN"
openssl pkcs12 -in $1 -out $tempkey -nodes -nocerts -legacy
echo "Provide Password for NEW key TWICE"
openssl pkcs12 -inkey $tempkey -in $tempcrt -export -out $1-new.p12
echo "Removing temp dir"
rm -rf $tempdir
echo "Done. Stored new key as $1-new.p12"
简短说明:
脚本注意事项: