Soru Pkcs12 kapsayıcısından Özel Anahtar Şifresi nasıl kaldırılır?


  1. Chrome’un SSL / export komutunu kullanarak sertifika çıkarttım.
  2. Daha sonra openvpn - openvpn yapılandırmasında girdi olarak sağladı:
    pkcs12 "path/to/pkcs12_container"
  3. Çağırırken openvpn ~/openvp_config özel anahtar için bir şifre ister (Chrome kullanarak dışa aktardığımda girdiğim yer):
    Enter Private Key Password:...
  4. Bu şifre isteğini kaldırmak istiyorum.

Soru: pkcs12'den özel anahtar için şifre nasıl kaldırılır?

Yani parola gerektirmeyen pkcs12 dosyası oluşturun.

(Sanki bir şekilde bunu bir yıl önce yaptım ve şimdi unuttum.)


33
2018-06-14 13:02


Menşei


Aşağıdaki betik bunu yapar (temelde sıfır-sıfırdır): gist.github.com/5nizza/7ae9cff0d43f33818a33 kullanımı: ./remove_pass_from_cert.sh YourCertName YourCertPass - Ayrat


Cevaplar:


Çeşitli tarafından elde edilebilir openssl çağırır.

  • ŞİFRE, geçerli şifrenizdir
  • YourPKCSFile dönüştürmek istediğiniz dosyadır
  • NewPKCSWithoutPassphraseFile, parolasız PKCS12 için hedef dosyadır

İlk önce sertifikayı alın:

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

İkincisi, CA anahtarı:

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

Şimdi, özel anahtar:

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

Şimdi şifreyi kaldırın:

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

Yeni PKCS Dosyası için her şeyi bir araya getirin:

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

Ve yeni dosyayı oluştur:

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

Artık özel anahtar parçasında parola olmadan yeni bir PKCS12 anahtar dosyanız var.


39
2018-06-14 13:50



harika cevap! ..nedir ca-cert.ca? - Ayrat
@Ayrat: Bu anahtarınızın CA sertifika kısmıdır. - Cevabımda yazım hatası var, düzeltiliyor ... - cevap verdikten sonra cevabı kabul edip kabul etmekten çekinmeyin :-) - zero0


En basit çözüm buldum olduğu

Geçici pem dosyasına aktar

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

Pem'i p12'ye geri çevir

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

Geçici sertifikayı kaldır

rm temp.pem

29
2017-10-06 11:28



Bu yaklaşıma bir dezavantaj görmüyorum. - Matt Beckman
Bazı araçlar şifre gerektirir. Örneğin keytool -v -list -storetype pkcs12 -keystore unprotected.p12 bir uyarı yayar ve sertifikayı listelemez. Bu yüzden OpenVPN için işe yarayabilir, ancak başka bir şey için değil. - mivk
mivk ne demek istiyorsun? Bazı araçlar şifre korumalı bir anahtar gerektiriyor mu? - Koen.
@Koen: evet. Görünüşe göre, keytool (ve muhtemelen diğer Java uygulamaları?) boş bir ihracat şifresiyle oluşturulmuş bir pkcs12 kapsayıcısında listelemeyi reddeder. Ama ben OpenVPN'in umrumda olmadığını anlıyorum. Yani sadece anlamı: Eğer boş bir şifre ile yapmış olsaydınız, aslında uygulamanızda çalıştığını kontrol edin. - mivk
Elbette, ama sorulması gereken bir şifre gerektiren uygulamalar hakkında değil, şifrenin kaldırılması ile ilgili soru. - Koen.


Bu geçici bir dosya olmadan tek adımda kolayca yapılabilir:

openssl pkcs12 -in "PKCSFile" -nodes | openssl pkcs12 -export -out "PKCSFile-Nopass"

Parolayı İçe Aktar düğmesine basın. <CR> ile Dışarı Aktarım Dışarı Aktarım isteklerini yanıtlayın

Bitti.

Bu pakette olabilecek herhangi bir sayıda ara sertifikaya sahip olduğunu unutmayın ...

Ortaya çıkan dosyaya dikkat etmenizi şiddetle tavsiye ederim; umask'i ilk olarak 377'ye ayarlamak iyi bir fikir olurdu (unix olmayan: bu sadece yaratılan dosyanın okunabildiği anlamına gelir.) Eğer varsayılan umaskınız izin vericiyse, 2 adım budur.


4
2017-09-30 15:41





Şimdi, özel anahtar:

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

Şimdi şifreyi kaldırın:

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

2 adımın yerini alabilir

openssl pkcs12 -nocerts -in "YourPKCSFile" -out private.key -nodes

2
2018-02-14 02:49