Bagaimana untuk mendapatkan .pem file dari .kunci dan .crt file?

Bagaimana saya dapat membuat PEM file dari sertifikat SSL?

Ini adalah file yang saya miliki:

  • .crt
  • server.csr
  • server.key
Mengomentari pertanyaan (1)
Larutan

Kunci anda mungkin sudah dalam format PEM, tapi hanya dinamai dengan .crt atau .kunci.

Jika file's konten dimulai dengan -----BEGIN dan anda dapat membacanya di editor teks:

File menggunakan base64, yang dapat dibaca dalam ASCII, bukan format biner. Sertifikat sudah di format PEM. Hanya mengubah ekstensi .pem.

Jika file biner:

Untuk server.crt, anda akan menggunakan

openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

Untuk server.kunci, menggunakan openssl rsa di tempat openssl x509.

Server.kuncinya adalah kemungkinan kunci pribadi anda, dan .crt berkas yang dikembalikan, ditandatangani, x509 certificate.

Jika ini adalah untuk server Web dan anda tidak dapat menentukan pembebanan yang terpisah pribadi dan kunci publik:

Anda mungkin perlu untuk menggabungkan dua file. Untuk penggunaan ini:

cat server.crt server.key > server.includesprivatekey.pem

Saya akan merekomendasikan penamaan file dengan "includesprivatekey" untuk membantu anda mengelola izin yang anda simpan dengan file ini.

Komentar (6)

Aku harus melakukan ini untuk sebuah AWS ELB. Setelah dipukuli oleh dialog berkali-kali, akhirnya ini adalah apa yang bekerja untuk saya:

openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem

Terima kasih NCZ

Edit: Karena @floatingrock kata

Dengan AWS, don't lupa untuk menambahkan nama file dengan file://`. Jadi itu'akan terlihat seperti:

 aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/

http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html

Komentar (3)

A pem file yang berisi sertifikat dan kunci pribadi. Hal ini tergantung pada format anda/sertifikat utama dalam, tapi mungkin itu's sederhana seperti ini:

cat server.crt server.key > server.pem
Komentar (7)

Selain itu, jika anda don't ingin meminta kata sandi, maka perlu menjalankan perintah berikut:

openssl rsa -in server.key -out server.key
Komentar (1)

ini adalah pilihan terbaik untuk membuat .pem file

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts
Komentar (0)
  1. Download sertifikat sementara dari portal dengan appleId,
  2. Ekspor sertifikat  dari gantungan Kunci dan  memberikan nama (Sertifikat.p12),
  3. Buka terminal dan goto folder di mana anda menyimpan Sertifikat atas.p12 file,
  4. Jalankan perintah di bawah ini:

a) openssl pkcs12 -di Sertifikat.p12 -keluar CertificateName.pem-node,

b) openssl pkcs12 -di Sertifikat.p12 -keluar pushcert.pem-bening-clcerts 5. Anda .pem file siap "pushcert.pem".

Komentar (0)

Apa yang telah saya amati adalah: jika anda menggunakan openssl untuk membuat sertifikat, ia menangkap kedua bagian teks dan base64 sertifikat bagian dalam crt file. Ketat format pem kata (wiki definisi) bahwa file harus mulai dan berakhir dengan BEGIN dan END.

.pem (Privacy Enhanced Mail) Base64 encoded sertifikat DER, tertutup antara "-----BEGIN CERTIFICATE-----" dan "-----END SERTIFIKAT-----"

Jadi untuk beberapa perpustakaan (yang saya temui ini di jawa) yang mengharapkan ketat format pem, dihasilkan crt akan gagal validasi sebagai 'tidak valid format pem'.

Bahkan jika anda menyalin atau grep garis dengan BEGIN/END SERTIFIKAT, dan paste di cert.pem file, harus bekerja.

Berikut adalah apa yang saya lakukan, tidak terlalu bersih, tetapi bekerja untuk saya, pada dasarnya filter teks mulai dari BEGIN line:

grep -1000 BEGIN cert.crt > cert.pem

Komentar (2)

Aku mencoba untuk pergi dari godaddy untuk app engine. Apa trik menggunakan baris ini:

openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr

Persis seperti ini, tapi mengganti nama dengan nama domain saya (bahwa itu tidak benar-benar bahkan penting)

Dan saya menjawab semua pertanyaan yang berkaitan dengan nama umum / organisasi sebagai www.name.com

Kemudian aku membuka csr, disalin, ditempel di go daddy, kemudian download, unzip, navigasikan ke unzip folder dengan terminal dan masuk:

cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt

Kemudian saya menggunakan petunjuk ini dari https://stackoverflow.com/questions/17569312/trouble-with-google-apps-custom-domain-ssl, yaitu:

openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem

persis seperti ini, kecuali bukan privateKey.kunci saya menggunakan nama.tidak terenkripsi.priv.kunci, dan bukan www_mydomain_com.crt, saya menggunakan nama.crt

Kemudian saya upload semua.pem ke konsol admin untuk "PEM dikodekan sertifikat X. 509", dan upload swasta.pem untuk "tidak Terenkripsi PEM dikodekan RSA private key"..

.. Dan akhirnya berhasil.

Komentar (0)

Mencoba untuk meng-upload GoDaddy sertifikat AWS saya gagal beberapa kali, tapi pada akhirnya itu cukup sederhana. Tidak perlu mengubah apa-apa .pem. Anda hanya perlu pastikan untuk menyertakan GoDaddy bundel sertifikat dalam rantai parameter, misalnya

aws iam upload-server-certificate
    --server-certificate-name mycert
    --certificate-body file://try2/40271b1b25236fd1.crt
    --private-key file://server.key
    --path /cloudfront/production/
    --certificate-chain file://try2/gdig2_bundle.crt

Dan untuk menghapus anda gagal sebelumnya tanggal yang dapat anda lakukan

aws iam delete-server-certificate --server-certificate-name mypreviouscert
Komentar (1)
  • Buka terminal.
  • Pergi ke folder di mana sertifikat anda berada.
  • Jalankan perintah di bawah ini dengan mengganti nama dengan sertifikat anda.

openssl pkcs12 -di YOUR_CERTIFICATE.p12 -keluar YOUR_CERTIFICATE.pem-bening-clcerts

  • Harapan itu akan bekerja!!
Komentar (0)