我有一个关于SSLConnection的问题,在java中,我为客户端编写了下面的代码(这个应用程序必须连接到服务器,我有支持ssl的服务器),但我得到了这样的错误“javax.net.ssl.sslException:Connection Hays Shutdown:javax.net.ssl.sslhandShakeException:sun.security.validator.validatoreXception:PKIX path building failed:sun.security.provider.certPath.SunCertPathBuilderException:
我怎样才能解决我的问题?
public static void main(String[] args) {
BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
PrintStream out = System.out;
SSLSocketFactory f =
(SSLSocketFactory) SSLSocketFactory.getDefault();
try {
SSLSocket c =
(SSLSocket) f.createSocket("192.168.10.38", 7701);
printSocketInfo(c);
System.out.println("End printSocketInfo");
c.startHandshake();
System.out.println("HandShake oK");
BufferedWriter w = new BufferedWriter(
new OutputStreamWriter(c.getOutputStream()));
BufferedReader r = new BufferedReader(
new InputStreamReader(c.getInputStream()));
String m = null;
// String m=
while ((m=r.readLine())!= null) {
System.out.println("11111");
out.println(m);
m = in.readLine();
System.out.println("M is: "+ m);
w.write(m,0,m.length());
w.newLine();
w.flush();
}
w.close();
r.close();
c.close();
} catch (IOException e) {
System.err.println(e.toString());
}
}
private static void printSocketInfo(SSLSocket s) {
System.out.println("Socket class: "+s.getClass());
System.out.println(" Remote address = "
+s.getInetAddress().toString());
System.out.println(" Remote port = "+s.getPort());
System.out.println(" Local socket address = "
+s.getLocalSocketAddress().toString());
System.out.println(" Local address = "
+s.getLocalAddress().toString());
System.out.println(" Local port = "+s.getLocalPort());
System.out.println(" Need client authentication = "
+s.getNeedClientAuth());
SSLSession ss = s.getSession();
System.out.println(" Cipher suite = "+ss.getCipherSuite());
System.out.println(" Protocol = "+ss.getProtocol());
}
我有一个证书文件,如何使用这个证书?
致以最诚挚的问候
您必须将HTTPS证书放入JVM。要从HTTPS获得证书,请通过浏览器,然后单击地址栏上的“锁定”徽标。您应该能够导出证书。
Linux的解决方案:在$java_home/jre/lib/security中,使用以下命令:
sudo keytool -import -alias keyName -file /[pathForYourKey]/keyName.cert -keystore cacerts
“Cacerts”的默认密码是ChangeIt。
我有一个简单的TCP服务器/客户端设置。这种连接实际上效果很好。 现在,我想为套接字连接实现SSL/TLS加密。我使用密钥链访问创建了PKCS12证书。在我的服务器中,accept回调中包含以下代码: 然后我创建流的实例,并在另一个类中处理它们。 当我运行服务器并连接客户端时,我会在委托中获得常规的nsstreamventopencompleted。如果我只是关闭连接,那么当我尝试写入流或事件时,
问题内容: 我需要检查服务器是否支持SSL和来自Web服务器的密码。 我查看了Java中的SSLSocket,但无法正常工作。 我使用的方法始终为每个网址提供相同的协议。此外,我没有从服务器获得密码。我猜是正确的方法 如何检查服务器使用SSL?服务器返回了什么密码? 问题答案: 分别返回 您一方 可以支持的协议和密码列表。返回您启用的这些列表的子集。 这不会告诉您有关服务器支持什么的太多信息。 根
1. Qt 标准支持 — 12 个月 与很多人预想的有所不同,实际上,获得任何 Qt 产品的商业、LGPL 或 GPL 授权的 客户都可以获得 Qt 标准支持。这是很有吸引力的一项人性化的市场策略,也让广大用户对 Qt 产品增强信心,因为这项举措实际上表明了: Qt 不同版本的产品都具有一致的高品质和 优质服务。 标准支持主要面向的是应用程序开发人员。 Qt 在以下几个方面为客户提供一般性的建 议
本文向大家介绍在Apache服务器上安装SSL支持的教程,包括了在Apache服务器上安装SSL支持的教程的使用技巧和注意事项,需要的朋友参考一下 今天我会讲述如何为你的个人网站或者博客安装SSL 证书,来保护你的访问者和网站之间通信的安全。 安全套接字层或称SSL,是一种加密网站和浏览器之间连接的标准安全技术。这确保服务器和浏览器之间传输的数据保持隐私和安全。它被成千上万的人使用来保护他们与客户
我想写一个非常简单的API。当我使用邮差API时。我想创建android应用程序,但我的应用程序崩溃了。为什么?哪里是错误
问题内容: 我正在尝试通过SSL连接使用socket.io设置服务器到服务器的链接。这是我的例子: 在没有SSL的情况下运行时,代码工作正常。我怀疑这可能是我的自签名证书未被接受,但是我不知道如何使客户接受它。 请告诉我如何:1.接受自签名SSL证书。或2.以其他方式帮助我完成这项工作。 提前致谢。 问题答案: 经过更多搜索后,将其添加到客户端中使其可以工作: require(’https’)。g