Я пытался использовать Azure SDK для получения некоторой информации из имеющейся у меня учетной записи Azure.
Мне нужно отключить проверку сертификата ssl.
public static final TrustManager[] UNQUESTIONING_TRUST_MANAGER = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
public void checkClientTrusted(X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(X509Certificate[] certs, String authType) {
}
}
};
private SSLSocketFactory sslFactory() {
try {
final SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, UNQUESTIONING_TRUST_MANAGER, null);
return sc.getSocketFactory();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
AzureTokenCredentials credentials = new ApplicationTokenCredentials(
"XXX",
"XXX",
"XXX",
AzureEnvironment.AZURE
).withSslSocketFactory(sslFactory());
Azure azure = Azure.configure().authenticate(credentials).withSubscription("XXX");
azure.resourceGroups().list()
Даже с этим SSLSocketFactory я получаю:
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(PKIXValidator.java:397)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
at sun.security.validator.Validator.validate(Validator.java:262)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
Я отлаживал sun.security.ssl.ClientHandshaker.class: 1008: ((X509ExtendedTrustManager)var6).checkServerTrusted((X509Certificate[])var2.clone(), var4, this.conn);
Это проходит дважды в этой строке. В первый раз у var6 была моя фабрика ssl, во второй раз это другая фабрика, которая выдает это исключение.
Как отключить проверку SSL?