Если у меня нет сертификата на моем сервере, то почему HttpsUrlConnection подключается? - PullRequest
0 голосов
/ 25 апреля 2018

Я только что разработал, как установить сертификат Lets Encrypt на моем сервере, поэтому мои браузеры теперь показывают, что мой сайт защищен при доступе через https://.

Когда я пытаюсь получить доступ к конечным точкам моего сервера в клиентском приложении Java, используя следующее,

        URL httpsURL = new URL(urlStringServerEndPoint);
        sc = SSLContext.getInstance("TLSv1.2");
        sc.init(null, null, new java.security.SecureRandom());
        conn  = (HttpsURLConnection) httpsURL.openConnection();
        conn.setSSLSocketFactory(sc.getSocketFactory());

        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        OutputStream os = conn.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
        osw.write(dataString);
        osw.flush();
        osw.close();
        os.close();
        conn.connect();

        if(conn.getResponseCode() != 200)
            throw new MyServerException();

это тоже работает.

Но - если я удаляю сертификат со своего сервера и снова запускаю клиент Java, он все равно работает. Конечно, должно появиться сообщение о том, что сертификата нет, не так ли? Что я делаю не так?

...