Bagaimana saya dapat membuat PEM file dari sertifikat SSL?
Ini adalah file yang saya miliki:
.crt
server.csr
server.key
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.
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
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".
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
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.
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
openssl pkcs12 -di YOUR_CERTIFICATE.p12 -keluar YOUR_CERTIFICATE.pem-bening-clcerts