Openssl kullanarak pfx'i pem'e dönüştürme


109

OpenSSL kullanılarak bir PFX dosyasından .pem CA sertifikası ve istemci sertifikası nasıl oluşturulur .

Yanıtlar:


107

OpenSSL Komut satırı aracını kullanabilirsiniz. Aşağıdaki komutlar hile yapmalı

openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts

openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts

Dosyanızın şifre korumalı olmasını vb. İstiyorsanız, ek seçenekler mevcuttur.

Tüm belgeleri buradan okuyabilirsiniz .


191

Bunu Linux'ta yapmanın başka bir perspektifi ... işte bunun nasıl yapılacağı, sonuçta ortaya çıkan tek dosyanın şifresi çözülmüş özel anahtarı içermesi, böylece HAProxy gibi bir şeyin sizden parola istemeden kullanabilmesi.

openssl pkcs12 -in file.pfx -out file.pem -nodes

Daha sonra HAProxy'yi file.pem dosyasını kullanacak şekilde yapılandırabilirsiniz.


Bu, -nodes seçeneğinin sadece özel anahtar şifrelemesini atladığını fark edene kadar bu çoklu adımlara sahip olduğum önceki sürümden bir DÜZENLEME. Ama öğretmeye yardımcı olabileceği için onu burada bırakıyorum.

openssl pkcs12 -in file.pfx -out file.nokey.pem -nokeys
openssl pkcs12 -in file.pfx -out file.withkey.pem
openssl rsa -in file.withkey.pem -out file.key
cat file.nokey.pem file.key > file.combo.pem
  1. 1. adım, PFX'i açmak için parola girmenizi ister.
  2. 2. adım, sizden bunun yanı sıra anahtar için bir parola oluşturmanızı ister.
  3. 3. adım, şifresi çözülmüş olarak saklamak için yeni oluşturduğunuz parolayı girmenizi ister.
  4. Dördüncüsü, hepsini bir arada 1 dosyaya koyar.

Ardından, file.combo.pem dosyasını kullanmak için HAProxy'yi yapılandırabilirsiniz.

Bir dosyayı anahtarla ve diğerini anahtarsız olarak belirttiğiniz 2 ayrı adıma ihtiyaç duymanızın nedeni, hem şifrelenmiş hem de şifresi çözülmüş anahtara sahip bir dosyanız varsa, HAProxy gibi bir şeyin sizden parolayı yazmanızı istemeye devam etmesidir. onu kullanır.


Openssl'yi yakından tanımak için zaman harcamadım, ancak pem dönüşümü özel anahtarı içermiyordu. Düzenleme, sertifika ve anahtarın tek bir pem dosyasında nasıl birleştirileceğine dair ayrıntıları sağladı, tam da ihtiyacım olan şey.
2014

Windows sistemlerinde cat yerine type kullanın
hupseb

Windows'ta OpenSSL'nin bu sürümünün aşağıdaki gibi şeyler için kullanımı kolaydır: slproweb.com/products/Win32OpenSSL.html
Helge Klein

Yukarıdaki adımlar, bir PFX'i PEM'e dönüştürmek için iyi çalıştı. Ancak bir ek adım daha atmam gerekiyordu: nokey PEM dosyasını bir metin düzenleyicide açın ve zincirdeki son sertifikayı dosyanın en üstüne taşıyın. Aksi takdirde nginx, sertifikalardan şikayet ederek bir hata atar ve bunları kullanmayı reddeder.
EugeneRomero

Bu durumda, ilk sıraya koymak için cat komutunu yeniden sıralayabilirsiniz. like: cat file.key file.nokey.pem> file.combo.pem file.key'in kendisinde birden fazla yanlış sırada olmadığı sürece. Ancak her iki durumda da, muhtemelen işleri programlı olarak yeniden düzenleyebilirsiniz.
user2415376

11

Diğer cevapların doğru olmasına ve iyice açıklanmasına rağmen, onları anlamakta bazı zorluklar buldum. İşte kullandığım yöntem ( Buradan alınmıştır ):

İlk durum: Bir PFX dosyasını hem sertifikayı hem de özel anahtarı içeren bir PEM dosyasına dönüştürmek için:

openssl pkcs12 -in filename.pfx -out cert.pem -nodes

İkinci durum: Bir PFX dosyasını ortak ve özel anahtar PEM dosyalarını ayırmak için dönüştürmek için:

Özel anahtarı bir PFX'ten bir PEM dosyasına çıkarır:

openssl pkcs12 -in filename.pfx -nocerts -out key.pem

Sertifikayı verir (yalnızca genel anahtarı içerir):

openssl pkcs12 -in filename.pfx -clcerts -nokeys -out cert.pem

Çıkarılan özel anahtardan parolayı (başka sözcüklerle ifade) kaldırır (isteğe bağlı):

openssl rsa -in key.pem -out server.key
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.