- Eu extraí o certificado usando o comando SSL / export do Chrome.
- Em seguida, forneceu como entrada para o openvpn - na configuração do openvpn:
pkcs12 "path/to/pkcs12_container"
- Ao ligar
openvpn ~/openvp_config
, solicita uma senha para chave privada (que eu inseri ao exportar usando o Chrome):
Enter Private Key Password:...
- Quero remover esta solicitação de senha.
A pergunta: como remover a senha da chave privada do pkcs12?
Ou seja, crie um arquivo pkcs12 que não exija uma senha.
(parece que de alguma forma eu já fiz isso há um ano e agora esqueci.damn.)
ssl-certificate
openssl
Ayrat
fonte
fonte
./remove_pass_from_cert.sh YourCertName YourCertPass
Respostas:
Isso pode ser alcançado por várias
openssl
chamadas.Primeiro, extraia o certificado:
Segundo, a chave CA:
Agora, a chave privada:
Agora remova a senha:
Junte as coisas para o novo arquivo PKCS:
E crie o novo arquivo:
Agora você tem um novo arquivo de chave PKCS12 sem senha na parte da chave privada.
fonte
ca-cert.ca
?-nodes
é ignorado quando-export
usado, não está documentado para este caso (consulte a página de manual openssl,-nodes
é listado apenas ao exportar do PKCS # 12 para o PEM). Sua última ligação ainda solicita uma senha de exportação. E se eu clicar em retornar, recebo um arquivo PKCS # 12 cuja senha é uma sequência vazia e não uma sem senha. Quando o façoopenssl pkcs12 -in "NewPKCSWithoutPassphraseFile"
, ainda solicita uma senha de importação. Eu posso apenas pressionar return e isso funciona, mas se não houvesse senha, ela nem sequer solicitaria.A solução mais simples que encontrei é
Exportar para arquivo pem temporário
Converter pem novamente em p12
Remover certificado temporário
fonte
keytool -v -list -storetype pkcs12 -keystore unprotected.p12
, emitirá um aviso e NÃO listará o certificado. Portanto, pode funcionar para o OpenVPN, mas não para outra coisa.Isso pode ser feito facilmente em uma etapa, sem arquivo temporário:
openssl pkcs12 -in "PKCSFile" -nodes | openssl pkcs12 -export -out "PKCSFile-Nopass"
Responda ao prompt Import Password com a senha. Responda aos prompts Export Passowrd com <CR>
Feito.
Observe que isso lida com qualquer número de certificados intermediários que possam estar no pacote ...
Eu recomendo fortemente tomar cuidado com o arquivo resultante; seria uma boa ideia definir umask para 377 primeiro (não unix: isso significa que apenas o proprietário pode ler o arquivo criado.) Suponho que sejam 2 etapas, se o umask padrão for permissivo ...
fonte
Agora, a chave privada:
Remova agora a senha:
Os 2 passos podem ser substituídos por
fonte
Nada disso funcionou para mim. No final, voltei ao código dotNet, que funcionou pela primeira vez.
fonte