“Sertifikat kunci publik dan kunci pribadi tidak cocok” saat menggunakan sertifikat yang diterbitkan GoDaddy [ditutup]

86

Saya mencoba menginstal sertifikat SSL GoDaddy pada penyeimbang beban baru yang saya siapkan di Amazon AWS. Saya awalnya membuat sertifikat di GoDaddy menggunakan program keytool untuk instalasi langsung di server Glassfish 3.1 (Amazon linux ami). Saya tidak mengalami masalah untuk mendapatkan penyiapan itu langsung di server. Sekarang saya perlu memindahkan sertifikat dari server web ke penyeimbang beban baru. Amazon memerlukan kunci pribadi dan sertifikat dalam format PEM, jadi saya menggunakan alat "rekey" di GoDaddy untuk membuat sertifikat baru. Saat saya memuatnya di layar penyetelan penyeimbang beban di AWS Mgmt Console, saya mendapatkan pesan kesalahan: "Sertifikat Kunci Publik dan Kunci Pribadi tidak cocok."

Inilah cara saya membuat kunci:

$ openssl genrsa -des3 -out private.key 2048
$ openssl req -new -key private.key -out apps.mydomain.com.csr

Saya kemudian mengirimkan file .csr ke GoDaddy selama proses "rekey". Setelah rekey selesai, saya mengunduh 2 sertifikat yang baru dibuat (apps.mydomain.com.crt & gd_bundle.crt). Saya mendownloadnya dengan memilih (Apache) sebagai jenis server (saya juga sudah mencoba "lainnya" dan "Cpanel" tetapi semuanya terlihat sama).

Pada titik ini, saya menghapus enkripsi dari file private.key dengan menggunakan perintah berikut:

$ openssl rsa -in private.key -out private.pem

Pada titik ini, saya kembali ke konsol AWS Mgmt, membuat penyeimbang beban, menambahkan pengalihan server aman dan meletakkan konten file berikut di bidang masing-masing di layar tempat ia meminta untuk menyiapkan sertifikat ssl:

private.pem --> Private Key
apps.mydomain.com.crt --> Public Key Certificate
gd_bundle.crt --> Certificate Chain

Ketika saya mengklik "tombol lanjutkan" saya mendapatkan pesan kesalahan "Kesalahan: Sertifikat Kunci Publik dan Kunci Pribadi tidak cocok."

-Apakah ada cara untuk menguji bahwa saya mendapatkan pesan kesalahan yang valid dari Amazon? Tampaknya aneh bagi saya bahwa kunci tidak akan cocok ketika saya mengikuti instruksi GoDaddy dengan cukup cermat.

Saya sudah mencoba membuat file private.key tanpa enkripsi RSA sebelum membuat .csr dan sepertinya tidak ada bedanya.

Saya juga berasumsi bahwa file .crt yang saya unduh dari GoDaddy dalam format .PEM, tetapi saya tidak yakin bagaimana cara memverifikasi ini.

Ada ide?

Felby
sumber
1
Stack Overflow adalah situs untuk pertanyaan pemrograman dan pengembangan. Pertanyaan ini tampaknya di luar topik karena ini bukan tentang pemrograman atau pengembangan. Lihat Topik apa yang dapat saya tanyakan di sini di Pusat Bantuan. Mungkin Pengguna Super bisa menjadi tempat yang lebih baik untuk bertanya. Lihat juga Di mana saya memposting pertanyaan tentang Dev Ops? .
jww
Posting ini sudah berusia lebih dari 3 tahun, mengapa repot-repot memindahkannya sekarang?
Felby
1
Felby - orang sering berkata, "... tapi lihat postingan ini dan postingan itu". Jadi tidak cukup untuk menjaga postingan baru tetap rapi - setidaknya kita harus mendapatkan pesan di postingan lama juga. Dan untuk apa nilainya, saya rasa itu bukan pertanyaan yang buruk. Ini hanya sedikit di luar topik untuk Stack Overflow.
jww
@Felby Anda harus mempertimbangkan jawaban ini untuk diterima. Ini adalah yang paling dicari pengembang saat masalah ini muncul dengan AWS.
Noel Baron

Jawaban:

61

Bagi saya, itu adalah dua langkah yang mudah:

  1. Ubah kunci pribadi ke PEM:

    openssl rsa -in yourdomain.key -outform PEM

  2. Ubah sertifikat dan bundel sertifikat ke PEM :

    openssl x509 -inform PEM -in yourdomain.crt

    openssl x509 -inform PEM -in bundle.crt

Jonathon Hill
sumber
1
Jawaban khusus ini sangat membantu saya. Terima kasih Jonathan. Sebagai catatan, yourdomain.crt adalah kunci publik, sertifikat yang Anda dapatkan dari penyedia Anda, (bisa juga
.cer
saya terus mendapatkan kesalahanWARNING: can't open config file: /etc/pki/tls/openssl.cnf
tq
2
@tq - beberapa perintah OpenSSL juga mengambil -configopsi. Gunakan untuk menentukan jalur ke file konfigurasi yang Anda gunakan.
jww
@felby Harus menandai yang ini sebagai jawaban yang diterima. Ini adalah satu-satunya jawaban yang tidak menimbulkan masalah kepercayaan SSL dengan perangkat iOS.
Noel Baron
Jawaban ini sangat membantu dengan SSL wildcard. Anda harus mengonversi file domain.crt dan gd_bundle.crt.
Ducle
40

Hanya sebagai catatan dan siapa saja yang mencoba mencari tahu:

yourdomain.key -> perintah terminal: sudo openssl rsa -in yourdomain.key -outform PEM -out yourdomain.pem -> kunci pribadi

yourdomain.crt -> kunci publik

gd_bundle.crt -> rantai sertifikat

dan Anda siap berangkat :)

Chris J.
sumber
2
OMG, saya kehilangan begitu banyak jam karena masalah, Anda baru saja menyelamatkan saya! Saya membeli sertifikat RapidSSL: triknya adalah 1) mengonversi kunci pribadi seperti yang Anda sarankan di sini dan 2) membalik urutan sertifikat dalam rantai sertifikat yang disediakan oleh RapidSSL. Terima kasih!
MiniQuark
terus meminta saya untuk kata sandi tetapi sertifikat rapidssl saya dibuat tanpa satu
tq
Perintah sudo akan meminta kata sandi admin, kecuali akun Anda diatur untuk tidak memerlukan kata sandi melalui beberapa metode berbeda. Apakah itu kata sandi yang Anda maksud juga?
Chris J
Untuk menambahkan sesuatu yang dapat ditemukan oleh seseorang yang membutuhkannya, kami mendapatkan sertifikat Host Gator dari klien, dan tampaknya sudah disiapkan dengan cukup baik - tidak ada konversi pem, dan bundel CA sudah digabungkan bersama. Namun, tidak mau masuk ke Amazon. Itu sama dengan urutan sertifikat di bundel. Dengan membalik urutan, itu masuk dan bekerja.
CargoMeister
23

Sepertinya masalahnya adalah cara saya menyalin konten kunci dan sertifikat ke konsol Manajemen AWS. Saya menggunakan desktop Ubuntu yang berjalan di Virtual Box pada desktop Windows 7; salin dan tempel nilai dari layar gedit ke browser yang berjalan di kotak Windows. Setelah saya membuka file kunci dan sertifikat pada kotak yang sama dengan browser web (Windows dalam hal ini) sertifikat berjalan dengan baik. Saya menduga beberapa bagian file tidak selesai dengan benar saat menggunakan papan klip bersama antara klien dan host Kotak Virtual. Kasus ditutup.

Felby
sumber
Dapatkah Anda menerima jawaban Anda sehingga orang tahu bahwa ini telah diselesaikan?
Phil Sturgeon
2
Aneh, saya pikir saya sudah menerimanya sejak lama ...
Felby
7

Kami menemukan solusi alternatif untuk masalah ini. Kami mengalami gejala yang sama dengan kesalahan yang sama.

Kemudian kami mencoba memasukkan kembali kode pem sekali lagi, tetapi kali ini kami memastikan untuk menekan enter satu kali dan memastikan kursor berada pada baris kosong di akhir setiap jendela. Lalu kami menyimpannya. BERHASIL.

Ini memecahkan masalah kami, jadi mungkin menyelesaikannya untuk orang lain.

PlateSpinner
sumber
1

Satu gotcha kecil. Saya menggunakan kotak Windows (Win 7 Pro) dan ketika saya menggunakan port windows OpenSSL, file yang dikeluarkan memiliki karakter akhir baris (LF) gaya Unix.

Saya harus mengonversi file ke gaya Windows (CRLF) untuk mengunggah kunci pribadi.

Christopher Stevenson
sumber
0

Saya dapat menyarankan Anda dengan solusi alternatif dan informasi untuk Anda sekalian. Umumnya semua sertifikat dalam format file PEM. Anda cukup membuka notepad atau editor teks apa pun dan menyeret file yang Anda terima dalam format file .crt. Yang biasanya disebut sebagai file .PEM. Jika sertifikat dimuat di keytool Anda, Anda dapat mengekspor sertifikat sebagai file pfx dari keytool. Kemudian Anda dapat memisahkan file pfx dari kunci pribadi dari file pfx. Karena file pfx adalah kombinasi dari sertifikat Anda dan kunci privat. Jadi Anda bisa mendapatkan file kunci privat secara terpisah dan menggunakannya di amazon aws Anda.

Saya curiga mungkin ada cara lain untuk memasang sertifikat. Mungkin Anda dapat menghubungi otoritas sertifikat dan adakah cara agar sertifikat Anda diterbitkan ulang.

Rajan
sumber