- Eu extraí o certificado usando o comando SSL/export do Chrome.
- Em seguida, forneceu como entrada para openvpn - na configuração para openvpn:
pkcs12 "path/to/pkcs12_container"
- Ao chamar
openvpn ~/openvp_config
pede uma senha para chave privada (que eu digitei 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 o arquivo pkcs12 que não requer senha.
(parece que de alguma forma eu já fiz isso um ano atrás, e agora esqueci. caramba.)
Pode ser alcançado por várias
openssl
chamadas.Primeiro, extraia o certificado:
Em segundo lugar, a chave CA:
Agora, a chave privada:
Agora remova a senha:
Junte as coisas para o novo PKCS-File:
E crie o novo arquivo:
Agora você tem um novo arquivo de chave PKCS12 sem senha na parte da chave privada.
A solução mais simples que encontrei é
Exportar para arquivo pem temporário
Converter pem de volta para p12
Remover certificado temporário
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 Importar senha com a senha. Responda aos prompts Exportar senha 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 ...
Agora, a chave privada:
Remova agora a senha:
Os 2 passos podem ser substituídos por
Nenhum destes funcionou para mim. No final, reverti para o código dotNet que funcionou pela primeira vez.
Aqui está uma solução pura do PowerShell que funciona sem OpenSSL:
Infelizmente, nenhuma das respostas postadas até agora está correta, pois elas apenas fornecem uma senha em branco em vez de nenhuma senha, o que significa que você ainda será solicitado a fornecer uma senha em primeiro lugar.
Para manter tudo junto em um só lugar, vou copiar o post do @slm com algumas pequenas alterações;
Primeiro, extraia o certificado:
Em segundo lugar, a chave CA:
Agora, a chave privada:
Agora remova a senha:
Junte as coisas para o novo PKCS-File:
Bash:
CMD:
E crie o novo arquivo: