Ich habe ein Java-konformes Paket, um mit dem https-Server im Internet zu sprechen. Das Ausführen der Kompilierung gibt die folgende Ausnahme:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
Ich denke, das liegt daran, dass die Verbindung zum Client-Computer nicht sicher ist. Gibt es eine Möglichkeit, den lokalen Computer oder die Ports zu konfigurieren, um eine Verbindung zum Remote-https-Server herzustellen?
HttpURLConnection
wird es automatisch für Sie tun, wenn Sie überhaupt keinen Port angeben.Sie sollten einen lokalen SMTP-Domänennamen haben, der den Mailserver kontaktiert und eine neue Verbindung herstellt. Sie sollten die SSL-Eigenschaft in Ihrer Programmierung unten ändern
quelle
Ich habe dieselbe Fehlermeldung erhalten, als ich vergessen habe, mich bei der Firewall des Unternehmens anzumelden, bevor ich eine POST-Anforderung über einen Proxy ausgeführt habe.
quelle
Ich habe den gleichen Fehler bekommen. Dies lag daran, dass ich über http auf den https-Port zugegriffen habe. Das Problem wurde behoben, als ich http in https geändert habe.
quelle
Ich habe das gleiche Problem mit der in Jdevelopr 11.1.1.7 IDE erstellten Java-Anwendung. Ich habe das Problem gelöst, indem ich die Verwendung der Proxy-Formular-Projekteigenschaften deaktiviert habe.
Sie finden es im Folgenden: Projekteigenschaften -> (aus dem linken Bereich) Ausführen / Debuggen / Profil -> Klicken (Bearbeiten) im rechten Bereich -> Werkzeugeinstellung im linken Bereich -> Deaktivieren Sie die Option (Proxy verwenden).
quelle
Fügen Sie dies als Antwort hinzu, da es später jemandem helfen könnte.
Ich musste jvm zwingen, den IPv4-Stack zu verwenden, um den Fehler zu beheben. Meine Anwendung arbeitete früher im Unternehmensnetzwerk, aber während der Verbindung von zu Hause aus gab es dieselbe Ausnahme. Kein Proxy beteiligt. Das Argument jvm wurde hinzugefügt
-Djava.net.preferIPv4Stack=true
und allehttps
Anforderungen verhielten sich normal.quelle
Wenn Sie mit Spring lokal arbeiten, würde ich Folgendes empfehlen:
Es funktioniert bei mir mit Unit-Test.
Hoffe es ist Hilfe!
quelle
Es hat jetzt bei mir funktioniert. Ich habe die Einstellung meines Google-Kontos wie folgt geändert:
Obwohl ich SSL und TSL aktiviert habe, während ich das Programm in diesem Link desselben Beitrags ausgeführt habe. Ich verbringe viel Zeit, aber als ich merkte und diesen Link fand. Und 2 folgende Schritte ausgeführt und Kontrolle in Google einstellen. ::
Deaktivieren Sie die Bestätigung in zwei Schritten (Kennwort und OTP).
Aktivieren, um den Zugriff auf weniger sichere Apps zu ermöglichen ( Weniger sichere Apps zulassen: EIN. )
Jetzt kann ich mit dem oben genannten Programm E-Mails senden.
quelle
Wie EJP sagte, handelt es sich um eine Nachricht, die aufgrund eines Aufrufs eines Nicht-https-Protokolls angezeigt wird. Wenn Sie sicher sind, dass es sich um HTTPS handelt, überprüfen Sie Ihre Bypass-Proxy-Einstellungen und fügen Sie für den Fall, dass Sie Ihre Webservice-Host-URL zur Bypass-Proxy-Liste hinzufügen
quelle
Wenn die Verbindung FTPS-Test ist:
FTPSClient ftpClient = neuer FTPSClient (Protokoll, falsch);
protocol = TLS, SSL und false = isImplicit.
quelle
Bei der Verwendung von Google Mail war diese Ausnahme aufgetreten.
Um Google Mail nutzen zu können, musste ich "Weniger sichere Apps zulassen" aktivieren .
Diese Google Mail-Einstellung finden Sie unter https://www.google.com/settings/security/lesssecureapps, nachdem Sie sich beim Google Mail-Konto angemeldet haben.
quelle
HIER EINE SEHR WICHTIGE ANTWORT:
Sie ändern einfach Ihre API-URL-Zeichenfolge (in Ihrer Methode) von https in http. Dies kann auch die Ursache sein:
anstatt
quelle
Ich habe das gleiche Problem und es wurde behoben, indem "proxyUser" und "proxyPassword" in den Systemeigenschaften festgelegt wurden.
zusammen mit "proxyHost" und "proxyPort"
Hoffe es wird funktionieren.
quelle
Ich habe mein Problem mit Port 25 und der folgenden Requisite gelöst
quelle
Falls du rennst
Versuchen Sie, die Dienste zu stoppen.
Ich bin mir nicht sicher, warum ich für diese Antwort eine negative Stimme bekommen habe. In unserem Unternehmensnetzwerk ist dies die Lösung für das Problem.
quelle
Ich habe einen ähnlichen Fehler bei der Verwendung der Camel-Mail-Komponente zum Senden von E-Mails per Google Mail-SMTP.
Die Lösung wurde wie folgt von TLS-Port (587) zu SSL-Port (465) geändert:
quelle
Wenn Sie den Java-Prozess über die Befehlszeile unter Java 6 oder früher ausführen, hat das Hinzufügen dieses Schalters das oben genannte Problem für mich gelöst:
-Dhttps.protocols = "TLSv1"
quelle
Möglicherweise ist Ihr Standardzertifikat abgelaufen. Um es über die Administratorkonsole zu erneuern, gehen Sie zu "Sicherheit> SSL-Zertifikat- und Schlüsselverwaltung> Schlüsselspeicher und Zertifikate> NodeDefaultKeyStore> Persönliche Zertifikate". Wählen Sie den Alias "Standard" und klicken Sie nach dem Neustart von WAS auf "Erneuern".
quelle
Ein weiterer Grund ist möglicherweise "Zugriff verweigert". Möglicherweise können Sie nicht auf die URI zugreifen und haben eine blockierende Antwortseite für den internen Netzwerkzugriff erhalten. Wenn Sie nicht sicher sind, ob Ihre Anwendungszone eine Firewall-Regel benötigt, versuchen Sie, eine Verbindung über das Terminal und die Befehlszeile herzustellen. Unter GNU / Linux oder Unix können Sie versuchen, diesen Befehl auszuführen, um festzustellen, ob das Ergebnis von der Blockierungsregel oder der wirklich entfernten Adresse stammt:
echo | nc -v yazilimcity.net 443
quelle