174得票5回答
如何在特定连接上使用不同的证书?

我正在向我们的大型Java应用程序中添加一个模块,该模块需要与另一家公司的SSL安全网站通信。问题在于该网站使用自签名证书。我有证书副本以验证未遇到中间人攻击,并且我需要将此证书合并到我们的代码中,以便与服务器的连接成功。 以下是基本代码:void sendRequest(String da...

137得票4回答
密钥库类型:应该使用哪种?

通过查看我的JRE的java.security文件,我发现默认使用的密钥库类型设置为JKS。此处,列出了可以使用的密钥库类型。 是否有推荐的密钥库类型?不同密钥库类型的优缺点是什么?

124得票9回答
Java客户端证书在HTTPS/SSL上的应用

我正在使用Java 6,尝试创建一个HttpsURLConnection与远程服务器建立连接,并使用客户端证书。 服务器使用的是自签名根证书,并要求提供受密码保护的客户端证书。我已将服务器根证书和客户端证书添加到默认的Java密钥库中,该密钥库位于/System/Library/Framewo...

86得票15回答
Java中的SCP传输

通过Java编程语言进行scp传输的最佳方法是什么?看来我可以通过JSSE、JSch或Bouncy Castle Java库来实现这个目标。但这些解决方案似乎都没有一个简单的答案。

62得票15回答
javax.net.ssl.SSLException: 收到致命警告:协议版本

有人之前遇到过这个错误吗?我对SSL不熟悉,我的ClientHello有什么明显的问题我可能错过了吗?如果没有ServerHello响应,就会抛出异常。感谢任何建议。*** ClientHello, TLSv1 RandomCookie: GMT: 1351745496 bytes = { ...

58得票3回答
为什么Java有cacerts和jssecacerts两个文件?

我对和文件之间的区别感到非常困惑。 我知道默认情况下Java会查找文件,然后查找文件。 但是文件的作用是什么? 我的理解是,如果需要使用新的信任库,则应该创建的副本,并将所有新的受信任CA添加到该副本中。带有新CA的副本应该由 -Djavax.net.ssl.trustStore系统属性...

57得票4回答
在JVM中注册多个密钥库

我有两个在同一个Java虚拟机中运行的应用程序,它们都使用不同的密钥库和信任库。 一个可行的选择是使用单个密钥库并将所有其他密钥库导入共享密钥库(例如,keytool -import),但如果我可以为在同一jvm中运行的不同应用程序使用单独的密钥库,那将有助于满足我的需求。 我可以将要使用...

56得票5回答
Java - 设置信任存储路径的属性无效?

我已经设置了一个自签名证书来测试Java SSL连接,但它拒绝定位Java信任存储库。我已将其复制到/Java/jre6/lib/security目录中,以及编译类所在的文件夹(我使用的是Netbeans),还有/java/jre6/bin目录。 但似乎以上所有方法都不起作用,因为当我运行以下...

44得票5回答
java.lang.SecurityException: 执行此操作需要签名的颁发者签署管辖策略文件。

在解决一个与RMI相关的问题时,我升级了系统的“安全文件夹”并添加了“无限制强度”策略文件,现在我的应用程序以不同的方式失败了。我得到了一个很长的堆栈转储,其中以下部分似乎是相关的: Exception in thread "main" java.lang.ExceptionInInitia...

44得票4回答
有没有一种方法可以加载与java_home/jre/lib/security文件夹中指定的不同的cacerts?

我在一个运行2或3个应用程序的系统上只有一个Java安装。 所有应用程序都使用相同的运行时。 是否有一种方法可以指定与java_home/jre/lib/security中的密钥库不同的CA证书的密钥库?也就是说,是否有一种选项可以指定“额外”加载并添加到从java_home/jre/li...