问题标签 [jsse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2283 浏览

java - 如何从 Java 应用程序获取远程 HTTPS 服务器支持的密码列表?

如何通过 Java JSSE 环境获取远程服务器支持的密码列表。

我想获取远程服务器支持的弱密码列表,以便修复它们。

我正在使用SSLSocket,它有一个名为 的方法getSupportedCipherSuites,但此方法返回客户端支持的密码,而不是远程服务器。

0 投票
5 回答
80069 浏览

java - java.lang.SecurityException:管辖权策略文件未由受信任的签名者签名

在处理另一个问题(与 RMI 相关)时,我使用“无限强度”策略文件升级了系统的“安全文件夹”,现在我的应用程序以不同的方式失败。我得到一个长堆栈转储,其中以下位似乎相关:

嗯,WTF?唯一的变化是我将原始 jar 文件移到一边,并在 $JAVA_HOME/lib/security.xml 中添加了无限制的 jar 文件。该目录现在如下所示:

当然,还有 .strong 和 .unlimited 版本,所以我可以快速切换回来。

说明简短明了,看起来他们只设想替换这两个文件(local_policy.jar 和 US_exportpolicy.jar)。

还需要做什么?

请注意,java 和策略文件的版本是迄今为止最年轻的版本:分别为 1.7.0_03 和 jce_policy-6。

PS 在此处找到的类似标题的文章根本没有帮助。

0 投票
1 回答
807 浏览

java - 使用 JSSE 验证 SSL 证书的扩展验证 (EV)

我得到了 URL 列表,我想使用 JAVA 验证他们的扩展验证 (EV) 属性,我可以提出请求并获取他们的证书,但我不确定如何验证给定站点的“扩展验证”。

证书有什么特殊价值吗?还是有什么属性?

0 投票
2 回答
1640 浏览

java - 如何将参数发送到 Ldap 中的 SocketFactory

以下示例代码的含义并不重要,我想问的是如何将“certFileName”作为参数发送到socketFactory,因为我需要使用不同的certFile到不同的endPoint,谢谢

可能是这样的:在“外部”代码中应该怎么做

谢谢!

0 投票
0 回答
591 浏览

ssl - 使用 Oracle JSSE 通过 SSL/TLS 进行 FTP

我不确定我对 Oracle JSSE 的理解是否正确,但是否可以使用 JSSE 通过 SSL/TLS 进行简单的 FTP。目的是使用在 Windows 机器上运行的 FileZilla 服务器从 FTP 服务器获取文件。Filezilla 仅支持 SSL/TLS 连接。客户端机器是 AIX 5.3。我已经使用 Apache Commons 网络库创建了一个 java 代码,它运行良好,但是我的公司现在不太愿意使用开源,所以我期待 Oracle 的 JSSE 库是否可以为我做同样的事情(因为我们有它的许可证)。我只需要一个 Java 客户端存根,它可以通过 SSL/TLS 从 AIX 5.3 机器建立到 Filezilla FTP 服务器的 FTP 连接,并从特定目录“获取”单个或一堆文件,所有这些都必须完成使用 Oracle JSSE 库。如果可能的话,有人还可以分享其实现的可能代码示例吗?这将非常有帮助。

注意 - 我也有来自 Filezilla 服务器的自签名证书,并且我已经使用它创建了一个 Oracle 钱包(使用 orapki 工具),但不确定我们是否需要它和 JSSE。

0 投票
1 回答
14254 浏览

java - SunX509 有什么用途,它可以与使用 IbmX509 的各方一起使用吗?

当我手动创建一个KeyManager时,其中一个步骤是:

这在我需要指定“IbmX509”的 IBM jre 上不起作用。
我的问题:

  1. 我读到这被称为“证书编码算法”。这意味着什么?什么时候使用?
  2. 当客户端使用 IBM 算法而服务器使用 Sun 算法时会发生什么?

谢谢,
多伦

0 投票
1 回答
7055 浏览

java - 使用 SSLEngine (JSSE) 与旧客户端进行 SSL 握手

这是“使用自签名证书和 SSLEngine (JSSE)进行 SSL 握手”的后续问题。

我已经实现了一个 NIO Webserver,它可以在同一个端口上处理 SSL 和非 SSL 消息。为了区分 SSL 和非 SSL 消息,我检查入站请求的第一个字节,看它是否是 SSL/TLS 消息。例子:

在 parseTLS() 方法中,我实例化了一个 SSLEngine、启动握手、包装/解包消息等。对于大多数现代 Web 浏览器(Firefox 10、IE 9、Safari 5 等)来说,一切似乎都运行良好。

问题是 IE 6 等较旧的 Web 浏览器和 Java 的 URLConnection 类等库似乎以不同的方式启动 SSL/TLS 握手。例如,IE 6 的前几个字节看起来像这样(十六进制值):

如果我将消息传递给 SSLEngine,它似乎无法识别该消息并引发异常。

那么 IE 6 和 Java 的 URLConnection 类到底发送了什么?这是 JSSE SSLEngine 可以支持的有效 SSL/TLS 消息吗?我是否必须进行一些预处理或与客户端协商以发送不同的消息?

提前致谢!

更新

感谢 Bruno 和 EJP 以及一些进一步的调试,我对正在发生的事情有了更好的理解。正如布鲁诺正确指出的那样,IE6 和 Java 6 客户端通过 SSLv2 ClientHello 发送。与我之前的评论相反,Java 1.6 中的 SSLEngine 实际上可以解开 SSLv2 消息并生成有效响应以发送回客户端。我之前报告的 SSLException 是我这边的一个错误,与 SSLEngine 无关(我错误地认为客户端已完成发送数据,而当 SSLEngine 期望更多数据解包时,我最终得到一个空的 ByteBuffer)。

0 投票
3 回答
5772 浏览

java - java如何挑选最强的密码在jsse中使用?

我不明白 Java 如何选择最喜欢的密​​码来使用Server Hello.

我有一个 Tomcat 5 配置,我在 SSL 连接器中设置了ciphers=TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, etc

服务器 ie Java 选择作为客户端支持TLS_RSA_WITH_AES_128_CBC_SHAServer Hello首选。但这不是最安全的,也不是http://docs.huihoo.com/java/javase/7/technotes/guides/security/SunProviders.html#SunJSSEProvider列出的首选编码TLS_RSA_WITH_AES_256_CBC_SHA
然后我认为是 server.xml 属性中的顺序产生了影响,我将另一个密码放在首位 ( TLS_DHE_RSA_WITH_AES_256_CBC_SHA),我在其中看到Client Hello它是受支持的。但是这个也没有被选中,又TLS_RSA_WITH_AES_128_CBC_SHA被选中了。

那么 JSSE 是如何选择偏好密码的呢?这是在某处记录的吗?我无法弄清楚这里发生了什么。

0 投票
1 回答
754 浏览

java - 注册接收 SSLSocket 握手完成的事件通知

根据SSLSocket 上的文档

您可以注册以接收握手完成的事件通知。

你为什么不注册这个?SSLSocket.startHandshake() 在没有 SSLException 发生的情况下成功的事实是否确保证书是可信的?或者您是否通过等待握手完成来获得一些额外的保证?

0 投票
2 回答
3509 浏览

java - Java JSSE SSLEngine 无法恢复 SSL 会话

我正在编写一个使用 SSLEngine 和 NIO 的应用程序,我同时编写客户端和服务器。客户端能够连接到服务器,连接后我希望他能够执行会话恢复/重新协商,但目前没有运气..

由于使用 SSLEngine 的代码非常大(SSLEngine 的使用非常复杂!)我将编写一个简单的伪代码来演示这种情况:

** 我更愿意发布可以提供帮助的代码的任何部分(即使是完整的代码,尽管我说它很大..)

当我执行我的程序时,第一个连接成功,但第二个导致异常:

我是否错过了恢复 ssl 会话所需的一些成分?