Como remover a Senha da Chave Privada do container pkcs12?

34
  1. Eu extraí o certificado usando o comando SSL / export do Chrome.
  2. Em seguida, forneceu-o como entrada para o openvpn - na configuração do openvpn:% pkcs12 "path/to/pkcs12_container"
  3. Ao chamar openvpn ~/openvp_config , ele solicita uma senha para a chave privada (que eu inseri ao exportar usando o Chrome):
    Enter Private Key Password:...
  4. Desejo remover esta solicitação de senha.

A pergunta: como remover a senha da chave privada do pkcs12?

Isto é, crie um arquivo pkcs12 que não exija uma senha.

(parece que eu já fiz isso há um ano, e agora esqueci ele.damn.)

    
por Ayrat 14.06.2013 / 15:02

4 respostas

39

Pode ser alcançado por várias chamadas openssl .

  • PASSWORD é sua senha atual
  • YourPKCSFile é o arquivo que você deseja converter
  • NewPKCSWithoutPassphraseFile é o arquivo de destino para o PKCS12 sem senha

Primeiro, extraia o certificado:

$ openssl pkcs12 -clcerts -nokeys -in "YourPKCSFile" \
      -out certificate.crt -password pass:PASSWORD -passin pass:PASSWORD

Em segundo lugar, a chave da AC:

$ openssl pkcs12 -cacerts -nokeys -in "YourPKCSFile" \
      -out ca-cert.ca -password pass:PASSWORD -passin pass:PASSWORD

Agora, a chave privada:

$ openssl pkcs12 -nocerts -in "YourPKCSFile" \
      -out private.key -password pass:PASSWORD -passin pass:PASSWORD \
      -passout pass:TemporaryPassword

Agora remova a senha:

$ openssl rsa -in private.key -out "NewKeyFile.key" \
      -passin pass:TemporaryPassword

Coloque as coisas juntas no novo arquivo PKCS:

$ cat "NewKeyFile.key"  \
      "certificate.crt" \
      "ca-cert.ca" > PEM.pem

E crie o novo arquivo:

$ openssl pkcs12 -export -nodes -CAfile ca-cert.ca \
      -in PEM.pem -out "NewPKCSWithoutPassphraseFile"

Agora você tem um novo arquivo de chave PKCS12 sem passphrase na parte da chave privada.

    
por 14.06.2013 / 15:50
30

A solução mais simples Eu encontrei é

Exportar para arquivo pem temporário

openssl pkcs12 -in protected.p12 -nodes -out temp.pem
#  -> Enter password

Converte pem de volta para p12

openssl pkcs12 -export -in temp.pem  -out unprotected.p12
# -> Just press [return] twice for no password

Remover certificado temporário

rm temp.pem
    
por 06.10.2014 / 13:28
4

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 os prompts do Export Passowrd com < CR >

Feito.

Observe que isso lida com qualquer número de certificados intermediários que possam estar no pacote ...

Eu recomendo strongmente tomar cuidado com o arquivo resultante; seria uma boa idéia definir umask como 377 primeiro (não-unix: isso significa que apenas o proprietário pode ler o arquivo criado). Suponho que sejam 2 etapas, se sua umask padrão for permissiva ...

    
por 30.09.2016 / 17:41
2

Agora, a chave privada:

openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -password pass:PASSWORD -passin pass:PASSWORD -passout pass:TemporaryPassword

Remova agora a frase secreta:

openssl rsa -in private.key -out "NewKeyFile.key" -passin pass:TemporaryPassword

Os 2 passos podem ser substituídos por

openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -nodes
    
por 14.02.2014 / 03:49