Как использовать сертификат SSL в коде Java в службе приложений Azure

Я пытаюсь вызвать серверный API из Java-клиента, который использует SSL-аутентификацию. Для.Net есть отрывок о том, как добиться этого в документации MS, но нет для Java.

Я добавил настройки приложения - WEBSITE_LOAD_CERTIFICATES с моим отпечатком частного сертификата и WEBSITE_LOAD_USER_PROFILE=1

Я попытался соединить точки и получил код ниже, но получаю ошибку:

      KeyStore ks;
      ks = KeyStore.getInstance("Windows-MY");
      ks.load(null, null); 
      Certificate cert = ks.getCertificate("<subject-cn>");
      TrustManagerFactory trustManagerFactory = 
      TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
      trustManagerFactory.init(ks);
      SSLContext sslContext = SSLContext.getInstance("TLS");
      sslContext.init(null, trustManagerFactory.getTrustManagers(), null);
      SSLSocketFactory factory = sslContext.getSocketFactory();
      HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
      conn.setSSLSocketFactory(factory);
      conn.setRequestMethod("GET");
      conn.setRequestProperty("Accept", "application/json");

Ошибка::javax.net.ssl.SSLHandshakeException: сбой построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели.

Что не так в приведенном выше коде? Есть ли документация о том, как этого можно достичь?

0 ответов

Другие вопросы по тегам