我有一个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地址,而没有收到错误。
答案 0 :(得分:1)
您的Java代理在以Domino实现的JRE中运行。通过https连接时,必须将请求站点的ssl证书导入到JRE的信任库(证书文件)中。否则,ssl握手失败。 服务器上JRE的位置是/ jvm / lib / security。