我希望能够连接到需要智能卡的个人证书进行身份验证的https站点。我想我已经很接近让它工作了,但不知道如何克服这个例外:
javax.net.ssl.SSLHandshakeException: Recieved fatal alert: unknown_ca
由于合同关系,我不能共享我的代码,但这里有一个总结:
我创建了一个密钥库,其中包含从浏览器导出的所有证书。我使用此密钥存储作为SSLContext的信任存储。我非常肯定这个密钥库包含正确的CA证书来验证远程站点的证书,因为它修复了“无法找到请求目标的有效证书路径”的异常。
我可以使用智能卡阅读器作为提供程序,以编程方式创建密钥存储库,类似于这里描述的技术:使用Java进行公共访问卡(CAC)身份验证。从智能卡创建的密钥库包含我的个人证书。当我使用它作为SSLContext的密钥库时,这将解决错误消息:“Received fatal Alert:Handshake_Failure”。
看来我越来越近了!但我最近看到的stacktrace是:
javax.net.ssl.SSLHandshakeException: Recieved fatal alert: unknown_ca
我添加了jvm标志-djavax.net.debug=ssl
,我看到了很好的ssl调试信息,但不确定如何读取调试跟踪以确定哪个ca是未启用的?
一个问题:truststore keystore包含所有CA证书。但是,从智能卡创建的密钥库不包含任何CA证书(它只包含在智能卡上找到的个人证书)。也许我需要在密钥库中添加CA?
关于我可能缺少什么和/或如何解释ssl调试输出的其他建议/想法?
在从智能卡创建密钥库时,我似乎需要通过提供程序。
为了从智能卡创建密钥库,我创建了一个card.config文件,然后使用以下代码:使用Java的公共访问卡(CAC)身份验证:
Provider provider = new sun.security.pkcs11.SunPKCS11("card.config");
Security.addProvider(provider);
然后,我使用如下代码创建密钥库:
KeyStore ks = KeyStore.getInstance("PKCS11");
KeyStore ks = KeyStore.getInstance("PKCS11", provider);
我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput
问题内容: 我试图用没有gui的服务器连接带有gui的客户端。连接已完成,但我看不到这两个应用程序之间的任何消息。(我应该在客户端中找到SERVER HERE,在服务器中找到CLIENT HERE) 客户端连接代码: (输入和输出在此客户端类扩展到的GUI类中定义。定义为“受保护的BufferedReader输入;受保护的PrintWriter输出;”) 另外,服务器代码: 连接似乎还可以,所以我
我组装了一个Java套接字服务器和客户端,可以互相发送消息,我想使用JavaScript作为客户端,但是。。。下面是在托管Java服务器并加载JavaScript客户端时发生的情况。 JavaScript: 这将在chrome控制台中打印: 到“ws://127.0.0.1:9005/”的WebSocket连接失败:WebSocket握手期间出错:无效状态行 WebSocket错误[对象事件] 我
我正在尝试连接一个带有gui的客户端和一个没有gui的服务器。连接正在进行中,但我看不到这两个应用程序之间的任何消息。(我应该将服务器放在客户端中,而将客户端放在服务器中) 客户端连接代码: PS:我也在服务器中尝试了PrintWriter,也尝试了try catch in stream语句,问题仍然存在。
我正在创建我的计算机和android之间的客户端套接字连接。 以下是服务器的代码: 当我在计算机上运行客户端时,一切都正常。以下是计算机客户端的代码: 当我在android中运行this客户端代码时,系统停止工作,错误是什么?这是android客户端代码: 以下是应用程序崩溃的日志:
我在unix(OSX)机器上使用kqueue建立了一个TCP/IP echo服务器,它可以打开100个TCP/IP端口,每个端口接受4000个客户端,我使用另外15台机器建立了大约23万个连接。(每道工序4000康纳,每箱4道工序) 服务器似乎可以接受更多,但问题是客户端,建立更多连接是有限制的。如Windows XP-3000、Windows7、UNIX-16384。 我怎么克服?