Saya mengalami masalah saat mengonfigurasi SSL di server Debian 6.0 32bit. Saya relatif baru dengan SSL jadi mohon bersabarlah. Saya memasukkan informasi sebanyak yang saya bisa.
Catatan: Nama domain yang sebenarnya telah diubah untuk melindungi identitas dan integritas server.
Konfigurasi
Server berjalan menggunakan nginx. Ini dikonfigurasi sebagai berikut:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Saya merantai sertifikat saya menggunakan metode yang dijelaskan di sini
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
di mana mysite.ca.crt
sertifikat yang diberikan kepada saya oleh otoritas penandatanganan, dan bundle.crt
apakah sertifikat CA juga dikirimkan kepada saya oleh otoritas penandatanganan saya. Masalahnya adalah saya tidak membeli sertifikat SSL langsung dari GlobalSign, melainkan melalui penyedia hosting saya, Singlehop.
Menguji
Sertifikat divalidasi dengan benar di Safari dan Chrome, tetapi tidak di Firefox. Pencarian awal mengungkapkan bahwa mungkin ada masalah dengan CA.
Saya menjelajahi jawaban untuk pertanyaan serupa , tetapi tidak dapat menemukan solusi, karena saya tidak benar-benar memahami tujuan dari setiap sertifikat.
Saya menggunakan s_client openssl untuk menguji koneksi, dan menerima output yang tampaknya menunjukkan masalah yang sama dengan pertanyaan serupa . Kesalahannya adalah sebagai berikut:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Detail lengkap dari respon openssl (dengan sertifikat dan informasi yang tidak perlu terpotong) dapat ditemukan di sini .
Saya juga melihat peringatan:
No client certificate CA names sent
Mungkinkah ini masalahnya? Bagaimana cara memastikan bahwa nginx mengirimkan nama CA ini?
Upaya untuk Memecahkan Masalah
Saya mencoba memecahkan masalah dengan mengunduh CA root langsung dari GlobalSign, tetapi menerima kesalahan yang sama. Saya memperbarui CA root di server Debian saya menggunakan update-ca-certificates
perintah, tetapi tidak ada yang berubah. Ini mungkin karena CA yang dikirim dari penyedia saya benar, sehingga sertifikat dirantai dua kali, yang tidak membantu.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Langkah selanjutnya
Tolong beri tahu saya jika ada yang bisa saya coba, atau jika saya hanya salah mengonfigurasi semuanya.
AlphaSSL CA - SHA256 - G2
. Namun, rantai Anda memasok perantaraAlphaSSL CA - G2
. Saya yakin Anda perlu menghapus sertifikat perantara saat ini (AlphaSSL CA - G2
), dan menggantinya dengan yang memiliki sidik jariae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
). Juga, Anda tidak perlu mengirimGlobalSign Root CA
. Klien harus mengakar kepercayaannya (atau pada perantara).openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>
. Perintah tersebut harus diselesaikan dengan aVerify OK (0)
atau serupa. Saat Anda mendapatkanVerify OK (0)
, server dikonfigurasi dengan benar (untuk masalah ini).openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
.i:
dan dis:
bawahs_client
. Setelah Anda memiliki sertifikat yang Anda butuhkan, gabungkan semuanya kecuali root. Karena digabungkan, mereka harus dalam format PEM. URL sangat membantu. Semakin tua mencoba membantu orang-orang yang tidak mau memberikan informasi sehingga kami dapat melihatnya secara lokals_client
. (Jika Anda tidak memberikan URL, saya akan memilih untuk menutup).Jawaban:
jww benar - Anda merujuk ke sertifikat perantara yang salah.
Karena Anda telah diberikan sertifikat SHA256, Anda memerlukan perantara SHA256. Anda dapat mengambilnya dari sini: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt
sumber
Jika Anda adalah pengguna linux Perbarui node ke versi yang lebih baru dengan menjalankan
ini seharusnya menyelesaikan masalah Anda
sumber