SSL-Handshake-Ausnahme: DH-Schlüsselpaar konnte nicht generiert werden
F: Warum funktioniert SSL beim Herstellen einer Verbindung zu bestimmten IRC-Servern über SSL mit Java? Der Handshake-Prozess löst eine Ausnahme „DH-Schlüsselpaar konnte nicht generiert werden“ aus?
A: Diese Ausnahme tritt auf, wenn ein Server verwendet Diffie-Hellman (DH)-Schlüsselaustausch mit einer Primzahlgröße, die das Maximum der standardmäßigen Java-Implementierung von 1024 Bits überschreitet.
Diagnose:
Die Meldung „Primzahlgröße muss sein Vielfaches von 64 und kann nur zwischen 512 und 1024 (einschließlich) liegen“ zeigt an, dass der Server eine Primzahl größer als anfordert 1024 Bits, was diese Einschränkung in Java auslöst.
Lösung:
Problemumgehung:
Verwenden Sie die JCE-Implementierung von BouncyCastle als Problemumgehung um die größere Prime-Größe zu bewältigen.
Permanent Fix:
Update auf Java 9 oder höher, da das Problem in JDK-7044060 behoben wurde. Beachten Sie jedoch, dass die maximal zulässige Primzahlgröße immer noch auf 2048 Bit begrenzt ist. Informationen zu Primzahlgrößen über 2048 Bit finden Sie in JDK-8072452, das für Java 9 geplant ist.
Das obige ist der detaillierte Inhalt vonWarum schlägt mein Java-SSL-Handshake mit der Ausnahme „DH-Schlüsselpaar konnte nicht generiert werden' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!