Kendinden imzalı bir HTTPS sunucusuna bağlanan bazı örnek Java projeleri oluşturmaya çalışıyorum. Sertifikayı doğrulamaya çalışmak için Java'yı kullanamıyorum. Bu sertifikaya güvenmek istemiyorum, sadece tüm sertifika geçerliliğini göz ardı etmek istiyorum; Bu sunucu ağımın içinde ve sertifikanın geçerli olup olmadığı konusunda endişe duymadan bazı test uygulamalarını çalıştırmak istiyorum.Java sertifika doğrulamasını dikkate almıyor
java -Dcom.sun.net.ssl.checkRevocation=false HelloWorld
org.apache.axis2.AxisFault: Connection has been shutdown: 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
-Dcom.sun.net.ssl.checkRevocation = yardım etmedi yanlış.
public static void DisableCertificateValidation() {
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { return null; }
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
}
};
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
}
Ama yine aynı sorun var: Ben de şu kod ekleyerek çalıştı. Burada neler oluyor? Eğer Eksen 2 kullanıyorsanız ve Eksen 2, HTTP (S) bağlantıları yapmak için HttpsURLConnection
kullanmaz, ancak Apache HttpClient (aynı bildiğim kadarıyla 3.x), bu yüzden HttpsURLConnection.setDefaultSSLSocketFactory(...)
sahip olacağı
Sertifikaları axis2 ile yok saymayı başardınız mı? Josip – cromorrissey