首页 > 解决方案 > 从服务器运行 notes java 代理时没有受信任的证书

问题描述

我有一个正在执行 HTTPS POST 的 Java 代理:

            URL url = new URL("https://postman-echo.com/post");
            HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
            SSLContext sc = SSLContext.getInstance("TLSv1.2");
            sc.init(null, null, new java.security.SecureRandom());
            conn.setSSLSocketFactory(sc.getSocketFactory());
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
            conn.setDoOutput(true);
            conn.getOutputStream().write(postDataBytes);
            //Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

            System.out.println("RESPONSE : "  + conn.getResponseMessage());
            return conn.getResponseMessage();

手动在服务器上运行代理时,此 POST 有效。如果我通过以下方式发布计划或通过控制台的代理:tell amgr run 然后我收到此错误:

error message: javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j: No trusted certificate found

我真的不知道为什么会这样。它运行代理: 1. 目标设置为无 2. 使用管理员 ID 运行 3. 安全 允许具有完全管理权限的受限操作

它上周工作,现在不再..

更新 当发布到:https ://postman-echo.com/post时它可以工作,从服务器运行时也是如此。当发布到我自己的具有 comodo 扩展验证 ssl 的网站时,我收到不信任证书错误

解决方案 我已将服务器从 9.0.1 FP4 更新到 9.0.1 FP10。它现在将数据(来自预定代理)发布到 HTTPS 地址,而不会出现错误。

标签: javassllotus-noteslotus-domino

解决方案


您的 java 代理在 domino 中实现的 JRE 中运行。当您通过 https 连接时,您必须将所请求站点的 ssl 证书导入 JRE 的信任库(cacert 文件)。否则 ssl 握手失败。服务器上 JRE 的位置是 /jvm/lib/security 。


推荐阅读