Ich versuche, Tweets mithilfe der twitter4j- Bibliothek für mein Java-Projekt abzurufen . Bei meinem ersten Lauf habe ich einen Fehler bezüglich Zertifikat sun.security.validator.ValidatorException
und sun.security.provider.certpath.SunCertPathBuilderException
. Dann habe ich ein Twitter-Zertifikat hinzugefügt von:
C:\Program Files\Java\jdk1.7.0_45\jre\lib\security>keytool -importcert -trustcacerts -file PathToCert -alias ca_alias -keystore "C:\Program Files\Java\jdk1.7.0_45\jre\lib\security\cacerts"
Aber ohne Erfolg. Hier ist das Verfahren, um Tweets zu erhalten:
public static void main(String[] args) throws TwitterException {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("myConsumerKey")
.setOAuthConsumerSecret("myConsumerSecret")
.setOAuthAccessToken("myAccessToken")
.setOAuthAccessTokenSecret("myAccessTokenSecret");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
Query query = new Query("iphone");
QueryResult result;
result = twitter.search(query);
System.out.println("Total amount of tweets: " + result.getTweets().size());
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " : " + tweet.getText());
}
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
}
Und hier ist der Fehler:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=d35baff5 or
http://www.google.co.jp/search?q=1446302e
TwitterException{exceptionCode=[d35baff5-1446302e 43208640-747fd158 43208640-747fd158 43208640-747fd158], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.5}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:81)
at twitter4j.TwitterImpl.get(TwitterImpl.java:1929)
at twitter4j.TwitterImpl.search(TwitterImpl.java:306)
at jku.cc.servlets.TweetsAnalyzer.main(TweetsAnalyzer.java:38)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.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.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at twitter4j.internal.http.HttpResponseImpl.<init>(HttpResponseImpl.java:34)
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:141)
... 5 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 26 more
Failed to search tweets: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Antworten:
"more info" > "security" > "show certificate" > "details" > "export.."
. Nehmen Sie den Namen und wählen Sie den Dateityp example.cerJetzt haben Sie eine Datei mit Keystore und müssen diese Ihrer JVM hinzufügen. Bestimmen Sie den Speicherort von Cacerts-Dateien, z.
C:\Program Files (x86)\Java\jre1.6.0_22\lib\security\cacerts.
Als nächstes importieren Sie die
example.cer
Datei in cacerts in der Befehlszeile:keytool -import -alias example -keystore C:\Program Files (x86)\Java\jre1.6.0_22\lib\security\cacerts -file example.cer
Sie werden nach dem Standardkennwort gefragt
changeit
Starten Sie Ihre JVM / Ihren PC neu.
Quelle: http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html
quelle
alias
Name des Zertifikats in der Befehlszeile sollte eindeutig sein.Nachdem ich viele Stunden lang versucht hatte, Zertifizierungsdateien zu erstellen, damit meine Java 6-Installation mit den neuen Twitter-Zertifikaten funktioniert, stieß ich schließlich auf eine unglaublich einfache Lösung, die in einem Kommentar in einem der Message Boards vergraben war. Kopieren Sie einfach die cacerts-Datei aus einer Java 7-Installation und überschreiben Sie die in Ihrer Java 6-Installation. Wahrscheinlich ist es am besten, zuerst eine Sicherungskopie der cacerts-Datei zu erstellen, aber dann kopieren Sie einfach die neue in und BOOM! es funktioniert einfach.
Beachten Sie, dass ich tatsächlich eine Windows-Cacerts-Datei auf eine Linux-Installation kopiert habe und sie einwandfrei funktioniert hat.
Die Datei befindet sich
jre/lib/security/cacerts
sowohl in der alten als auch in der neuen Java JDK-Installation.Hoffe, das erspart jemand anderem Stunden der Verschlechterung.
quelle
$JAVA_HOME/jre/lib
, nicht$JAVA_HOME/lib
- ich habe ein bisschen Zeit damit verbracht, dieses Detail zu vermissen.MEIN UI-Ansatz:
CMD-Linie:
keytool -importcert -file jetty.crt -alias jetty -keystore $JAVA_HOME/jre/lib/security/cacerts
changeit
(Kann auf dem Mac geändert werden)quelle
keytool -importcert -file dinardap_cert.cer –alias dinardap –keystore “%JAVA_HOME%/jre/lib/security/cacerts”
Ich bin auf dieses Problem gestoßen, dessen Behebung viele Stunden gedauert hat, insbesondere bei automatisch generierten Zertifikaten, die im Gegensatz zu offiziellen Zertifikaten ziemlich knifflig sind und denen Java nicht so gut gefällt.
Bitte überprüfen Sie den folgenden Link: Problem mit Zertifikaten in Java lösen
Grundsätzlich müssen Sie das Zertifikat vom Server zu den Java Home-Zertifikaten hinzufügen.
InstallCert
und führen Sie ihn aus, während der Server ausgeführt wird. Geben Sie dabei die folgenden Argumente anserver[:port]
. Es wird kein Passwort benötigt, da das ursprüngliche Passwort für die Java-Zertifikate funktioniert ("changeit").jssecerts
Datei in dem Verzeichnis zu erstellen , in dem Sie das Programm ausgeführt haben. (Wenn es von Eclipse ausgeführt wird, stellen Sie sicher, dass Sie die Arbeit konfigurieren Verzeichnis inRun -> Configurations
).$JAVA_HOME/jre/lib/security
Nachdem Sie diese Schritte ausgeführt haben, generieren die Verbindungen mit dem Zertifikat in Java keine Ausnahmen mehr.
Der folgende Quellcode ist wichtig und aus (Sun) Oracle-Blogs verschwunden. Die einzige Seite, die ich gefunden habe, war der angegebene Link. Daher füge ich ihn in der Antwort als Referenz hinzu.
quelle
1. Überprüfen Sie das Zertifikat
Versuchen Sie, die Ziel-URL in den Browser zu laden und das Zertifikat der Site anzuzeigen (normalerweise ist es über das Symbol mit dem Sperrzeichen zugänglich. Es befindet sich links oder rechts in der Adressleiste des Browsers), unabhängig davon, ob es abgelaufen oder aus einem anderen Grund nicht vertrauenswürdig ist.
2. Installieren Sie die neuesten Versionen von JRE und JDK
Neue Versionen werden normalerweise mit dem aktualisierten Satz der vertrauenswürdigen Zertifikate geliefert.
Auch wenn es möglich ist, deinstallieren Sie alte Versionen. Dadurch werden Fehlkonfigurationsfehler explizit.
3. Überprüfen Sie Ihre Konfiguration:
4. Kopieren Sie den gesamten Keystore aus der neuen Java-Version
Wenn Sie unter dem JDK entwickeln, das nicht das neueste verfügbare ist, versuchen Sie, die
%JAVA_HOME%/jre/lib/security/cacerts
Datei durch die neue Datei aus der zuletzt installierten JRE zu ersetzen ( erstellen Sie zuerst eine Sicherungskopie), wie @ jeremy-goodell in seiner Antwort vorschlägt5. Fügen Sie Ihrem Keystore Zertifikate hinzu
Wenn nichts oben genanntes Ihr Problem löst
keytool
, speichern Sie die Zertifikate im Java-Keystore:Die Datei mit dem Zertifikat kann vom Browser abgerufen werden, wie @MagGGG in seiner Antwort vorschlägt .
Hinweis 1: Möglicherweise müssen Sie dies für jedes Zertifikat in der Kette zum Zertifikat Ihrer Site wiederholen. Beginnen Sie mit der Wurzel.
Hinweis 2:
<alias_name>
Sollte unter den Schlüsseln im Geschäft eindeutig sein oderkeytool
zeigt einen Fehler an.So erhalten Sie eine Liste aller Zertifikate im Geschäft, die Sie ausführen können:
Falls etwas schief geht, können Sie das Zertifikat aus dem Geschäft entfernen:
quelle
Es wird zum Überspringen der Zertifikatvalidierung verwendet.
Warnung Nur für Entwicklungszwecke zu verwenden, ist unsicher!
quelle
Ich hatte eine etwas andere Situation, als sowohl JDK als auch JRE 1.8.0_112 auf meinem System vorhanden waren.
Ich habe die neuen CA-Zertifikate
[JDK_FOLDER]\jre\lib\security\cacerts
mit dem bereits bekannten Befehl importiert :Trotzdem bekam ich immer wieder den gleichen Fehler beim Erstellen eines PKIX-Pfads .
Ich habe der Java-CLI mithilfe von Debug-Informationen hinzugefügt
java -Djavax.net.debug=all ... > debug.log
. In der Datei debug.log lautet die Zeile, die mit trustStore beginnt, tatsächlich auf den Cacerts-Speicher in[JRE_FOLDER]\lib\security\cacerts
.In meinem Fall bestand die Lösung darin, die von JDK verwendete Cacerts-Datei (mit den neuen Zertifizierungsstellen) über die von der JRE verwendete Datei zu kopieren, wodurch das Problem behoben wurde.
quelle
Problem Hintergrund:
Beim Versuch, mvn clean install in meinem Projekt und über die Netbeans IDE-Option zum Bereinigen und Erstellen auszuführen, wurde folgende Fehlermeldung angezeigt. Dieses Problem ist darauf zurückzuführen, dass das Zertifikat beim Herunterladen über die NET-Beans-IDE / über die Eingabeaufforderung nicht verfügbar ist, die Dateien jedoch über den Browser heruntergeladen werden können.
Fehler :
Auflösung:
1. Laden Sie das Zertifikat der betreffenden URL herunter:
2. Installieren Sie nun den Schlüsselspeicher, um das Problem zu beheben.
Beispiel für Befehlszeilenbefehle / -ausgabe:
quelle
Ich wollte ein Zertifikat für smtp.gmail.com importieren
Die einzige Lösung, die für mich funktioniert hat, ist 1. Geben Sie den Befehl ein, um dieses Zertifikat anzuzeigen
Kopieren Sie die Zeilen zwischen "----- BEGIN CERTIFICATE -----" und "----- END CERTIFICATE -----" in eine Datei, gmail.cer
Lauf
Passwort eingeben chageit
Klicken Sie auf Ja, um das Zertifikat zu importieren
Starten Sie Java neu
Führen Sie jetzt den Befehl aus und Sie können loslegen
quelle
Dies ist keine Twitter-spezifische Antwort, aber dies ist die Frage, die sich bei der Suche nach diesem Fehler stellt. Wenn Ihr System diesen Fehler beim Herstellen einer Verbindung zu einer Website erhält, die in einem Webbrowser ein gültiges Zertifikat zu haben scheint, bedeutet dies wahrscheinlich, dass die Website eine unvollständige Zertifikatkette aufweist .
Für eine kurze Zusammenfassung des Problems: Zertifizierungsstellen verwenden ihr Stammzertifikat nicht, um nur ein altes Zertifikat zu signieren. Stattdessen signieren sie (normalerweise) Zwischenzertifikate , für die auch das Flag der Zertifizierungsstelle gesetzt ist (dh sie dürfen Zertifikate signieren). Wenn Sie dann ein Zertifikat von einer Zertifizierungsstelle kaufen, signieren diese Ihre CSR mit einem dieser Zwischenzertifikate.
Ihr Java Trust Store verfügt höchstwahrscheinlich nur über das Root-Zertifikat, nicht über die Zwischenzertifikate.
Eine falsch konfigurierte Site gibt möglicherweise nur ihr signiertes Zertifikat zurück. Problem: Es wurde mit einem Zwischenzertifikat signiert, das sich nicht in Ihrem Trust Store befindet. Browser können dieses Problem beheben, indem sie ein zwischengespeichertes Zwischenzertifikat herunterladen oder verwenden. Dies maximiert die Website-Kompatibilität. Java und Tools wie OpenSSL werden dies jedoch nicht tun. Und das wird den Fehler in der Frage verursachen.
Sie können diesen Verdacht mithilfe des Qualys SSL-Tests überprüfen . Wenn Sie das gegen eine Site ausführen und es heißt
dann bestätigt das es. Sie können dies auch sehen, indem Sie sich die Zertifizierungspfade ansehen und den Text Extra Download sehen .
So beheben Sie das Problem: Der Serveradministrator muss den Webserver so konfigurieren, dass auch die Zwischenzertifikate zurückgegeben werden. Für Comodo zum Beispiel ist hier die
.ca-bundle
Datei nützlich. In einer Apache-Konfiguration mit mod_ssl würden Sie beispielsweise dieSSLCertificateChainFile
Konfigurationseinstellung verwenden. Für nginx müssen Sie die Zwischenzertifikate und das signierte Zertifikat verketten und in der SSL-Zertifikatskonfiguration verwenden. Sie können mehr finden, indem Sie online nach "unvollständiger Zertifikatskette" suchen.quelle
Der Grund für den obigen Fehler ist, dass JDK mit vielen vertrauenswürdigen Certificate Authority (CA) -Zertifikaten in einer Datei namens "cacerts" gebündelt ist, diese Datei jedoch keinen Hinweis auf unser selbstsigniertes Zertifikat enthält. Mit anderen Worten, in die cacerts-Datei wird unser selbstsigniertes Zertifikat nicht importiert und daher nicht als vertrauenswürdige Entität behandelt. Daher wird der oben genannte Fehler ausgegeben.
So beheben Sie den obigen Fehler
Um den obigen Fehler zu beheben, müssen wir lediglich das selbstsignierte Zertifikat in die cacerts-Datei importieren.
Suchen Sie zuerst die Cacerts-Datei. Wir müssen den JDK-Standort herausfinden. Wenn Sie Ihre Anwendung über eine der IDEs wie Eclipse oder IntelliJ Idea ausführen, gehen Sie zu den Projekteinstellungen und ermitteln Sie den JDK-Speicherort. Unter Mac OS befindet sich der typische Speicherort der Cacerts-Datei beispielsweise an diesem Speicherort / Library / Java / JavaVirtualMachines / {{JDK_version}} / Contents / Home / jre / lib / security auf einem Windows-Computer unter {{Installationsverzeichnis}. } / {{JDK_version}} / jre / lib / security
Nachdem Sie die Cacerts-Datei gefunden haben, müssen wir unser selbstsigniertes Zertifikat in diese Cacerts-Datei importieren. Überprüfen Sie den letzten Artikel, wenn Sie nicht wissen, wie Sie das selbstsignierte Zertifikat korrekt generieren können.
Wenn Sie keine Zertifikatdatei (.crt) und nur eine .jks-Datei haben, können Sie mit dem folgenden Befehl eine .crt-Datei erstellen. Falls Sie bereits eine .crt / .pem-Datei haben, können Sie den folgenden Befehl ignorieren
## Zertifikat aus Keystore (.jks-Datei) generieren ####
Der obige Schritt generiert eine Datei mit dem Namen selfsigned.crt.Now Importieren Sie das Zertifikat in cacerts
Fügen Sie nun das Zertifikat zu JRE / lib / security / cacerts (Trustore) hinzu.für zB
Das ist alles, starten Sie Ihre Anwendung neu und es sollte gut funktionieren. Wenn es immer noch nicht funktioniert und eine SSL-Handshake-Ausnahme erhalten wird. Dies bedeutet wahrscheinlich, dass Sie eine andere Domain verwenden als im Zertifikat registriert.
Der Link mit detaillierter Erklärung und schrittweiser Auflösung ist hier vorbei.
quelle
Das Hinzufügen
cacerts
hat bei mir nicht funktioniert. Nachdem Sie das Protokoll mit dem Flag aktiviert hatten-Djavax.net.debug=all
, lernten Sie das Lesen von Java kennenjssecacerts
.Import
jssecacerts
funktioniert endlich.quelle
jssecacerts
falls vorhanden, andernfallscacerts
.Dies ist eine Lösung, aber in Form meiner Geschichte mit diesem Problem:
Ich war fast tot und habe die oben angegebene Lösung ausprobiert (3 Tage lang) und nichts hat bei mir funktioniert.
Ich habe alle Hoffnung verloren.
Ich habe diesbezüglich mein Sicherheitsteam kontaktiert, weil ich hinter einem Proxy stehe und sie sagten, dass sie kürzlich ihre Sicherheitsrichtlinien aktualisiert haben.
Ich habe sie schlecht beschimpft, weil sie die Entwickler nicht informiert haben.
Später gaben sie eine neue "cacerts" -Datei heraus, die alle Zertifikate enthält.
Ich habe die cacerts-Datei entfernt, die in% JAVA_HOME% / jre / lib / security vorhanden ist, und mein Problem wurde behoben.
Wenn Sie also mit diesem Problem konfrontiert sind, könnte es auch von Ihrem Netzwerkteam so sein.
quelle
Ich bin auf diese Frage gestoßen, als ich versucht habe, das Cucumber-Eclipse-Plugin in Eclipse über die Update-Site zu installieren. Ich habe den gleichen SunCertPathBuilderException-Fehler erhalten:
Während einige der anderen Antworten für die jeweilige Situation dieser Frage angemessen und hilfreich sind, waren sie für mein Problem dennoch nicht hilfreich und irreführend.
In meinem Fall war das Problem, dass die für ihre Update-Site angegebene URL lautet:
Wenn Sie jedoch über einen Browser dorthin navigieren , wird es umgeleitet (beachten Sie das hinzugefügte " .github "):
Die Lösung besteht also darin, beim Hinzufügen der Update-Site in Eclipse einfach die umgeleitete Version der URL der Update-Site zu verwenden.
quelle
Ich hatte das gleiche Problem und konnte es mithilfe der folgenden einfachen Schritte lösen:
1) Laden Sie InstallCert.java von Google herunter
2) Kompilieren Sie es mit javac InstallCert.java
3) Führen Sie InstallCert.java mit java InstallCert.java mit dem Hostnamen und dem https-Port aus und drücken Sie "1", wenn Sie zur Eingabe aufgefordert werden. Es wird den "localhost" als vertrauenswürdigen Schlüsselspeicher hinzufügen und eine Datei mit dem Namen "jssecacerts" wie folgt generieren:
Java InstallCert localhost: 443
4) Kopieren Sie die jssecacerts in den Ordner $ JAVA_HOME / jre / lib / security
Die Hauptquelle zur Behebung des Problems ist:
https://ankurjain26.blogspot.in/2017/11/javaxnetsslsslhandshakeexception.html
quelle
Ich habe dieses Problem unter Windows Server 2016 mit Java 8 gelöst, indem ich das Zertifikat aus dem
pkcs12
Store in dencacerts
Keystore importiert habe .Pfad zum pkcs12-Speicher:
C:\Apps\pkcs12.pfx
Pfad zu Java-Cacerts:
C:\Program Files\Java\jre1.8.0_151\lib\security\cacerts
Pfad zum Keytool:
C:\Program Files\Java\jre1.8.0_151\bin
Nach dem Besitz eines Ordners mit dem Keytool in der Eingabeaufforderung (als Administrator) lautet der Befehl zum Importieren des Zertifikats von
pkcs12
nachcacerts
wie folgt:keytool -v -importkeystore -srckeystore C:\Apps\pkcs12.pfx -srcstoretype PKCS12 -destkeystore "C:\Program Files\Java\jre1.8.0_151\lib\security\cacerts" -deststoretype JKS
Sie werden aufgefordert:
1. Geben Sie das Kennwort des Ziel-Keystores ein (cacerts pasword, Standard ist "changeit")
2. Geben Sie das Quell-Keystore-Passwort ein (pkcs12-Passwort).
Starten Sie den Server neu (oder starten Sie einfach JVM neu), damit die Änderungen wirksam werden.
quelle
Hier tritt diese Art von Ausnahme normalerweise auf, wenn der Pfad des vertrauenswürdigen Zertifikats nicht übereinstimmt. Überprüfen Sie die Konfiguration oder den Pfad, in dem dieses Serverzertifikat für die sichere Kommunikation erforderlich ist.
quelle
Für mich ist ein Zertifikatfehler aufgetreten, weil im Hintergrund ein Geiger ausgeführt wurde, der das Zertifikat durcheinander bringt. Es fungiert als Proxy so nah, dass Eclipse neu gestartet wird.
quelle
Tore:
Wie es geht:
Meine Keystore-Wrapper-Datei:
Diese Klasse erstellt bei Bedarf einen Keystore und kann darin Zertifikate verwalten. Jetzt Klasse für SSL-Kontext:
Diese Klasse wurde als Singleton erstellt, da nur ein Standard-SSL-Kontext zulässig ist. Also, jetzt Verwendung:
Möglicherweise funktioniert dies mit diesen Einstellungen nicht, da ich die Zertifikatdatei im Ressourcenordner aufbewahre und mein Pfad daher nicht absolut ist. Aber im Allgemeinen funktioniert es perfekt.
quelle
available()
wird in seinem eigenen Javadoc ausdrücklich gewarnt.Es ist eine Ergänzung zur Antwort https://stackoverflow.com/a/36427118/1491414 . Danke @MagGGG
quelle
Ich habe dies mit der folgenden Methode behoben:
quelle
Wenn Sie oben Fehler mit atlassian Software ex haben. Jira
Sie können dem vertrauenswürdigen Schlüsselspeicher Zertifikate hinzufügen (ändern Sie "missing_ca" in den richtigen Zertifikatsnamen):
Wenn Sie nach dem Passwort gefragt werden, geben Sie es ein
changeit
und bestätigen Sie esy
Danach einfach Jira neu starten.
quelle
Wenn Ihre Repository-URL auch unter HTTP funktioniert und die Sicherheit keine Rolle spielt, können Sie in settings.xml (häufig, aber nicht immer in
%USERPROFILE%/.m2
) HTTPS durch HTTP für<repository>
und<pluginRepository>
URLs ersetzen .Zum Beispiel:
sollte durch Folgendes ersetzt werden:
quelle
Ich habe meinen eigenen Trust Store anstelle von JRE verwendet, indem ich arg übergeben habe
-Djavax.net.ssl.trustStore=
Ich habe diesen Fehler unabhängig von Zertifikaten im Truststore erhalten. Das Problem für mich war die Reihenfolge der Eigenschaften, die auf der arg-Linie übergeben wurden. Als ich
-Djavax.net.ssl.trustStore=
&-Djavax.net.ssl.trustStorePassword=
before-Dspring.config.location=
&-jar
args platzierte, konnte ich meinen Restanruf über https erfolgreich aufrufen.quelle
Wenn Sie CloudFoundry verwenden und auf ein Zertifikatproblem stoßen, müssen Sie sicherstellen, dass Sie das JAR erneut mit dem Keystore-Service mit dem darin enthaltenen Zertifikat verschieben. Einfach lösen, binden und neu starten funktioniert nicht.
quelle
Wenn sich Ihr Host hinter einer Firewall / einem Proxy befindet , verwenden Sie den folgenden Befehl in cmd:
Ersetzen Sie
<proxy_hostname>
und<proxy_port>
mit dem konfigurierten HTTP-Proxyserver. Ersetzen Sie ihn<remote_host_name:remote_ssl_port>
durch einen der Remote-Hosts (im Grunde URL) und einen Port mit dem Zertifizierungsproblem.Nehmen Sie den zuletzt gedruckten Zertifikatinhalt und kopieren Sie ihn (kopieren Sie auch das Start- und Endzertifikat). Fügen Sie es in eine Textdatei ein und geben Sie ihm die Erweiterung .crt . Importieren Sie nun dieses Zertifikat mit dem Befehl java keytool in cacerts und es sollte funktionieren.
quelle
Versuchen Sie, Java-Cacerts zu kopieren:
cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.172-9.b11.fc28.x86_64/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/cacerts
quelle
Wenn dieses Problem in einem Linux-Container auftritt, wenn eine Java-Anwendung versucht, mit einer anderen Anwendung / Site zu kommunizieren, liegt dies daran, dass das Zertifikat falsch in den Load Balancer importiert wurde. Es gibt eine Reihe von Schritten, die zum Importieren von Zertifikaten ausgeführt werden müssen. Wenn dies nicht korrekt ausgeführt wird, werden Probleme wie z
Sobald die Zertifikate korrekt importiert wurden, sollte dies geschehen. Sie müssen keine JDK-Zertifikate basteln.
quelle
Ich habe es für Intellij Idea gelöst. Ich stehe vor diesem Problem. Trotzdem ändere ich viel Platz, um das Problem zu lösen. Ich habe eine Lösung für mich gefunden. Klicken Sie mit der rechten Maustaste auf Ihr Projekt. Sie sehen Maven . Drücken Sie anschließend Quellen generieren und Ordner aktualisieren und ReImport
Es ist vollbracht.
quelle
Ich hatte das gleiche Problem, ich habe 8.1.0-3 verwendet, aber später habe ich 9.2.1-0 verwendet und das Problem wurde ohne manuelle Schritte behoben. Das selbstsignierte Zertifikat hat einwandfrei funktioniert.
quelle