Невозможно найти действительный путь сертификации для конкретной цели

У меня есть требование, где мне нужно проверить, работает ли tomcat URL или нет. Для этого я написал java-код для проверки кода ответа и на основании этого определяю, работает ли веб-сайт или нет.

Проблема в том, что URL использует HTTPS

https://apache:port/myurl.jsp

и я получаю ошибку ниже:

javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:  
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to specified target

Я искал по интернету и наткнулся на разные посты, но это не помогло. Я импортировал сертификат в хранилище доверенных сертификатов JRE с помощью keytool, но это тоже не помогло.

HeatlhCheck.java

import java.net.HttpURLConnection;
import javax.net.ssl.HttpsURLConnection;
import java.io.*;
import java.net.URL;
import java.lang.String;
/* This is the maim entry point for the script*/
public class HealthCheck
{
public static void main(String args[])
{
    //instancetiate the URLCHEck class
    String url = "https://Apache:port/mywebsite";
    int timeout = 1000000;
    int sitestatus = 0;
    URLCheck site = new URLCheck();
    sitestatus = site.isURLUp(url,timeout);
    if(sitestatus==0)
    {       
        System.out.println("\n Site is up");
    }
    else if (sitestatus==-1)
    {
        System.out.println("\n Could not determine site status ");
    }
    else
    {
        System.out.println("\n Site is is else condition, down ");
    }
  }
   }

URLCheck.java

import java.net.HttpURLConnection;
import javax.net.ssl.HttpsURLConnection;
import java.io.*;
import java.net.URL;
import java.lang.String;

public class URLCheck
{
public int isURLUp(String url, int timeout)
{
    //URLS Checks for checking whether the URL's are accessible or not.
    System.out.println("\n URL passed is : "+url);
    int responseCode = 3;
    System.out.println("\n URL after Trimming : : "+url);
    try {
             HttpsURLConnection connection = (HttpsURLConnection) new URL(url).openConnection();
             connection.setConnectTimeout(timeout);
             connection.setReadTimeout(timeout);
             connection.setRequestMethod("HEAD");
             responseCode = connection.getResponseCode();
            System.out.println("I am Here");
         System.out.println("response Code = "+responseCode);
             if (responseCode != 200)
         {
                return 1;
             }
        } 
    catch (IOException exception) 
    {
            System.out.println("Exception caught"+exception);
    }

    return -2;
   }
    }

0 ответов

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