从服务器运行Notes Java代理时没有受信任的证书

时间:2019-05-02 11:53:59

标签: java ssl lotus-notes lotus-domino

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

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


<ul class="nav nav-tabs" id="myTab" role="tablist">
    <li class="nav-item">
        <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Home</a>
    </li>
    <li class="nav-item hidden">
        <a class="nav-link" id="home-tab" data-toggle="tab" href="#Anotherhome" role="tab" aria-controls="home" aria-selected="true">Another Home</a>
    </li>
    <li class="nav-item hidden" id="profile-tab-container">
        <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Profile</a>
    </li>
    <li class="nav-item hidden">
        <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">Contact</a>
    </li>
</ul>
<div class="tab-content" id="myTabContent">
    <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">Home</div>
    <div class="tab-pane fade" id="Anotherhome" role="tabpanel" aria-labelledby="home-tab">Another Home</div>
    <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">Profile</div>
    <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">Contact</div>
</div>

 <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

在服务器上手动运行代理程序时,此POST起作用。如果我通过以下方式通过控制台发布代理程序,请执行以下操作:tell amgr run 然后我得到这个错误:

            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();

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

它在上周有效,现在不再可用。

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

解决方案 我已将服务器从9.0.1 FP4更新到9.0.1 FP10。现在,它将数据(从计划的代理)发布到HTTPS地址,而没有收到错误。

1 个答案:

答案 0 :(得分:1)

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

相关问题