Rumah > Java > javaTutorial > Mengapa Java Gagal Menghantar Sijil Pelanggan Semasa Jabat Tangan SSL?

Mengapa Java Gagal Menghantar Sijil Pelanggan Semasa Jabat Tangan SSL?

DDD
Lepaskan: 2024-12-03 07:56:10
asal
924 orang telah melayarinya

Why Does Java Fail to Send Client Certificates During SSL Handshakes?

Sijil Pelanggan Misteri Java Semasa Jabat Tangan SSL

Walaupun mengkonfigurasi tetapan keystore dan truststore dengan betul, banyak pembangun menghadapi kegagalan jabat tangan SSL disebabkan oleh Java tingkah laku yang pelik. Khususnya, Java gagal menghantar sijil pelanggan kepada pelayan semasa berjabat tangan.

Menyingkap Isu:

  1. Salah Tafsiran Permintaan Pelayan: Pelayan meminta sijil pelanggan (ditandatangani oleh RootCA), tetapi Java hanya mencari stor kuncinya, mengabaikan sijil yang sepadan (ditandatangani oleh SubCA) hadir di kedai amanah.
  2. Keterlaluan KeyManager: Java KeyManager secara selektif mengambil sijil pelanggan dari stor kunci, menghadap semua yang lain, walaupun mereka melengkapkan rantaian sijil.
  3. Kegagalan Berjabat Tangan Berlaku: Java secara tersilap menyimpulkan bahawa tiada sijil berkenaan tersedia dan meninggalkan jabat tangan, mengakibatkan kegagalan yang mengecewakan.

Penjelasan Kemungkinan:

  • Mengimport CA perantaraan secara tidak wajar sijil ke dalam stor kunci, mengganggu sijil rantai.
  • Salah konfigurasi pelayan, memerlukan sijil yang ditandatangani oleh SubCA dan bukannya sijil RootCA yang disediakan.

Penyelesaian Sementara:

Kepada menangani isu ini, seseorang boleh membuat fail bundle.pem yang mengandungi sijil pelanggan, sijil CA perantaraan dan berpotensi CA akar sijil. Himpunan ini kemudiannya diimport ke alias stor kunci yang mengandungi kunci persendirian, memastikan Java mengenali rantaian sijil lengkap semasa jabat tangan SSL.

Walau bagaimanapun, penyelesaian ini kekal sebagai penyelesaian yang tidak memuaskan dan penjelasan rasmi daripada pasukan pembangunan Java atau peleraian dalam versi akan datang amat diingini.

Atas ialah kandungan terperinci Mengapa Java Gagal Menghantar Sijil Pelanggan Semasa Jabat Tangan SSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan