Heim > Java > javaLernprogramm > Warum erhalte ich die Meldung „SSLHandshakeException: no cipher suites in common', wenn ich einen SSLServerSocket verwende?

Warum erhalte ich die Meldung „SSLHandshakeException: no cipher suites in common', wenn ich einen SSLServerSocket verwende?

DDD
Freigeben: 2024-11-03 17:14:30
Original
338 Leute haben es durchsucht

Why am I receiving an

Java SSLHandshakeException „no cipher suites in common“

Frage:

Ich kann keine SSL-Verbindungen mit einem herstellen SSLServerSocket. Obwohl alle möglichen Cipher Suites und Protokolle aktiviert sind, erhalte ich eine SSLHandshakeException mit der Meldung „Keine gemeinsamen Cipher Suites“.

Antwort:

Das Problem liegt in der Initialisierung von SSLContext. Die Bereitstellung eines Null-KeyManager-Arrays führt zu einem leeren KeyManager, dem RSA- oder DSA-Zertifikate fehlen. Dies verhindert die Verwendung von Standard-Cipher-Suites, die auf diesen Zertifikaten basieren, und führt letztendlich zu dem Fehler. Um dies zu beheben:

  1. Laden Sie den Keystore mit Ihren Zertifikaten:
KeyStore ks = KeyStore.getInstance("JKS");
InputStream ksIs = new FileInputStream("...");
ks.load(ksIs, "password".toCharArray());
Nach dem Login kopieren
  1. Initialisieren Sie eine KeyManagerFactory mit dem Keystore:
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, "keypassword".toCharArray());
Nach dem Login kopieren
  1. Aktualisieren Sie die SSLContext-Initialisierung, um die KeyManagers zu verwenden:
SSLContext sc = SSLContext.getInstance("TLSv1.2");
sc.init(kmf.getKeyManagers(), null, new SecureRandom());
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Meldung „SSLHandshakeException: no cipher suites in common', wenn ich einen SSLServerSocket verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage