如果我的服务器上没有证书,为什么HttpsUrlConnection连接?

时间:2018-04-25 12:56:03

标签: java ssl certificate tls1.2

我刚刚研究了如何在我的服务器上安装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客户端,它仍然有效。当然应该抛出一个错误,说没有证书不应该吗?我做错了什么?

0 个答案:

没有答案