Hallo Leute,
ich habe folgendes Problem:
Ich versuche per Java-Code einer bestimmten URL immer zu vertrauen, auch ohne Zertifikat. Wenn ich danach google oder hier im Forum suche, finde ich immer nur Beispiele wie man die Überprüfung von Zertifikaten generell ausschaltet. Ich will aber, dass nur das Zertifikat einer bestimmten URL nicht geprüft wird.
Aktuell bin ich soweit, dass ich ALLEN urls vertraue, jetzt würde ich das gerne noch auf eine bestimmte URL beschränken?! Kann mir da jemand einen Tipp geben
Danke
ich habe folgendes Problem:
Ich versuche per Java-Code einer bestimmten URL immer zu vertrauen, auch ohne Zertifikat. Wenn ich danach google oder hier im Forum suche, finde ich immer nur Beispiele wie man die Überprüfung von Zertifikaten generell ausschaltet. Ich will aber, dass nur das Zertifikat einer bestimmten URL nicht geprüft wird.
Aktuell bin ich soweit, dass ich ALLEN urls vertraue, jetzt würde ich das gerne noch auf eine bestimmte URL beschränken?! Kann mir da jemand einen Tipp geben
Danke
Code:
public void trustUrl(){
final TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(final X509Certificate[] certs, final String authType) {
}
@Override
public void checkServerTrusted(final X509Certificate[] certs, final String authType) {
}
} };
try {
final SSLContext sslContent = SSLContext.getInstance("SSL");
sslContent.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sslContent.getSocketFactory());
final HostnameVerifier allHostsValid = new HostnameVerifier() {
@Override
public boolean verify(final String hostname, final SSLSession session) {
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
} catch (final KeyManagementException e) {
LOGGER.error("SSL-Fehler", e);
} catch (final NoSuchAlgorithmException e) {
LOGGER.error("SSL-Fehler", e);
}
}