当前位置: 首页 > 知识库问答 >
问题:

到https URL的Java连接

薛扬
2023-03-14

我用Java编写了一个访问URL的小代码。该代码适用于HTTP连接,但不适用于HTTPS(错误粘贴在下面)

如有任何帮助,我们将不胜感激。

代码:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;


public class ConnectToWCProd {

    public static void main(String[] args) throws Exception {

        String userPassword = "user1:user1";
        String encoding = new sun.misc.BASE64Encoder().encode (userPassword.getBytes());

        //URL oracle = new URL("http://<URL>/");
        URL oracle = new URL("https://<URL>");
        URLConnection yc = oracle.openConnection();

        yc.setRequestProperty("Authorization", "Basic " + encoding);

        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }

}

错误:

异常线程"main"javax.net.ssl.SSLHandshake异常:sun.security.validator.验证器异常:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderExc0019:无法在com.sun.net.ssl.internal.ssl.找到有效的认证路径请求的目标lerts.getSSLExc0019(未知来源)com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(未知来源)com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(未知来源)com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(未知来源)com.sun.net.ssl.internal.ssl.ClientH<--plhd证书(未知来源)在com.sun.net.ssl.internal.ssl.ClientHandshaker.process消息(未知来源)在com.sun.net.ssl.internal.ssl.Handshaker.process循环(未知来源)在com.sun.net.ssl.internal.ssl.Handshaker.process_record(未知来源)在com.sun.net.ssl.internal.ssl.SSLSocketImp. read记录(未知来源)在com. sun. net. ssl. interal. ssl.SSLSocketImp. perform初始握手(未知来源)在com. sun. net. ssl. interal. ssl.SSLSocketImp. start握手(未知来源)在com. sun. net. ssl. interal. ssl.SSLSocketImp. start握手(未知来源)在sun. net. www.协议. http。在sun. net. www.协议. http上连接(未知来源)。连接(未知来源)在sun. net. www.协议. http.http://httpURLConnection. getInputStream(未知来源)在sun. net. www.协议。在ConnectToWCProd. main(ConnectToWCProd. java: 21)引起的HttpsURLConnectionImp. getInputStream(未知来源): sun. security. validator.异常:PKIX路径构建失败:sun. security. Supply. certpath。SunCertPathBuilder异常:无法在sun. security. validator上找到请求目标的有效认证路径。PKIXValidator. doBuild(未知来源)在sun. security. validator。在sun. security. validator. PKIXValidator. Engineering验证(未知来源)。在com. sun. net. ssl. interal. ssl.在com. sun. net. ssl. interal. ssl.X509TrustManagerImp. check ServerTrusted(未知来源)在com. sun. net. ssl. interal. ssl.X509TrustManagerImp. check ServerTrusted(未知来源)...13更多原因: sun. security. Supply. certpath。SunCertPathBuilder异常:无法在sun. security. Supply. certpath上找到请求目标的有效认证路径。在java. security. cert的SunCertPathBuilder. EngineBuild(未知来源)。CertPathBuilder. build(未知来源)...19 more

共有2个答案

丁毅庵
2023-03-14

阅读此链接

您必须在jre/lib/Security/cacerts(默认路径)中包含证书

宫弘亮
2023-03-14

这可能会对您有所帮助:

http://www.java-samples.com/showtutorial.php?tutorialid=210

 类似资料:
  • jdbc:mysql://x.x.x.x:3306/xxxdb?VerifyServerCertificate=true&usessl=true&requiressl=true+user+password Mon Nov 14 17:23:53 S>2016警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果未设置显式选项

  • 问题内容: 码: CFG: 问题是我有一些密钥对,我用pkcs11-tool添加了它们。 softhsm的版本是1.2.1 为什么在密钥库中没有任何别名?如何解决这个问题? 问题答案: 我们将很快发布SoftHSM 1.3.0。它支持证书,并已通过Java测试。 SoftHSM.java: softhsm.cfg:

  • 我正在尝试将我的Java web项目连接到Firebase,这样我就可以将数据存储在FireStore中。我正在使用Java管理SDK,遵循官方指南:FireBaseAdminSDK。不幸的是,在初始化FirebaseAp时,我遇到了异常: 现在,我读到这里和那里,它的问题与guava项目,建议使用不同版本的guava库。我试过从18开始的所有版本。 我甚至下载了google firebase s

  • 我们正在开发web应用程序,我们的tomcat服务器和mysql服务器运行在两个不同的服务器上,我们收到了错误 需要帮助来解决问题 已经尝试了这些链接的解决方案。 Hibernate会话无法打开事务 第一次登录:HTTP状态500 -请求处理失败;嵌套异常是org . spring framework . transaction . cannotcreatetransactionexception

  • 我正在尝试使用同一版本的SolrJ从Java代码连接到运行5.3.1的Solr服务器。我在Eclipse中不断收到一条消息,HttpSolrServer已被弃用,但在任何地方都找不到它已被取代的内容。有人知道我如何使用SolrJ和当前的东西从Java连接到Solr吗?SolrJ文档似乎都表明HttpSolrServer是受支持的方式,但Eclipse对此并不满意。

  • 尝试在Azure中连接Web App-Java和SQL数据库。我使用了这个示例和这个页面:https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-java-simple-windows/