问题标签 [sslsocketfactory]
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.
java - 如何在 Apache HttpClient 4.5.3 自定义 SSL 实现中为 HTTPS 注册一组全局支持的协议?
假设我想将 Apache HttpClient 4.5.3 使用的支持的协议限制为仅 TLSv1.1。我可以通过以下代码轻松实现:
我检查了 -Djavax.net.debug=all enabled 并确认正在使用 TLSv1.1。但是对于我创建的每个 CloseableHttpClient 实例,我都需要执行上述操作。有没有办法设置一次此配置并对创建的所有 CloseableHttpClient 实例有效?如果我只执行以下操作:
它始终默认为 TLSv1.2,这可能是 HttpClient 默认值。
我的问题是我是否可以以一种甚至
HttpClients.custom().build();
只使用那些指定协议的方式注册支持的协议。
在旧的 HttpClient 3.1 中,我相信这可以通过以下代码来实现:
customFactory 是实现 SecureProtocolSocketFactory 的类的对象,该类在内部设置 SSLSocket 上的“启用协议”。上面的代码片段注册了“https”的处理程序,这就是我所理解的。
java - Java SSLSocket 的问题
我目前正在开发一个客户端-服务器项目。
出于安全原因,我决定应该使用 SSL。
我尝试将所有Socket
和ServerSocket
对象转换为它们的 SSL 变体,但无济于事。
当我使用SSLServerSocket
并连接到它时,服务器端的套接字输出冻结在outputstream.write(byte[])
.
以下是我用来创建 SSL 套接字的函数,
是ContextController.CONTEXT
我切换 SSL 的快速方法:SSLContext
Constants.DEBUG
当Constants.DEBUG = true
(即 SSL 关闭)时,它可以工作,但是当 SSL 开启时,它会在无限期地发送一些数据后冻结,如上所述。我怎样才能解决这个问题?
编辑:
这是来源ContextController.CONTEXT
:(
注意,我知道我应该使用实际TrustManager
但首先我希望它能够工作)
编辑 2:
这是它冻结位置的堆栈跟踪,请注意它不会崩溃,它会挂起:
我在后面的行放置了一个断点SocketStream.streamPacket(Packet) 181
,但它永远不会到达它。
java - SSLSocket 握手异常没有通用密码套件
我在 StackOverflow 上到处搜索,但这些问题似乎与我的不同,我在修复它时遇到了很多麻烦。
现在,我的程序应该只使用 SSL 套接字建立客户端-服务器连接,其中客户端只发送一条消息并关闭(稍后我将添加更多内容)
我收到消息部分的问题和 No Cipher Suites in Common 错误。下面我将发布我的服务器和客户端代码以及输出。我正在使用 Ubuntu 16.04 和 Netbeans 8.2
服务器代码:
服务器输出:
客户端代码
客户端输出
大多数东西(比如 System.setProperty 的东西)是我测试我在这里读到的几个选项。.jks 是通过将 crt 和密钥文件获取到 p12 文件并将它们添加到 .jks 来生成的。
我真的没有想法,所以任何帮助表示赞赏。您需要的其他任何内容都可以询问。谢谢
java - 通过 tls 从 java 连接到邮件服务器不检查证书
尝试使用证书通过 TLS 连接邮件服务器,但即使我输入了错误的证书,连接也成功。我添加了这些属性:
我创建套接字工厂的方式:(我使用来自服务器的公共证书创建了新的密钥库。并创建了 socketfctory)
我错过了什么或错了什么?
android - 使用 SSLServerSocket 和 SSLSocket 进行通信时是否需要实现证书?
我有一个通过套接字进行通信的应用程序。现在,我需要分别更改用于接收和发送数据的 ServerSocket 和 Socket,以用于其各自的 SSL/TLS 实现。
我使用下面的代码将 ServerSocket 和 Socket 转换为 SSLServerSocket 和 SSLSocket,并保持其余代码不变。
由于我仍在学习如何保护移动应用程序通信,我怀疑这是否足以保护通信安全,或者我是否需要指定自定义证书?
android - 调用 SSLSocket#getInputStream 时出现 SSLHandshakeException(握手失败)
我正在测试在 Android 应用程序上运行时SSLSocket
运行的服务器的连接。IntentService
为此,我使用PacketSender发送带有数据的 SSL 数据包,当使用 Socket 而不是SSLSocket
.
当试图从 PacketSender 接收数据时,应用程序设法接受连接,但在尝试调用时抛出异常(见下文)getInputStream
:
我按照这个答案尝试从普通切换Socket
到SSLSocket
.
编辑:尝试为服务器应用程序实现自签名证书,但错误仍然存在。
java - Android 6 及更高版本中的 Android SSLSocket 握手失败
我编写了一个基于 Java SSLServerSocket 的服务器,它接受连接并通过自定义二进制协议与 android 应用程序通信:
我使用以下参数运行服务器:
证书是使用以下构建公钥和私钥集的教程生成的: http: //judebert.com/progress/archives/425-Using-SSL-in-Java,-Part-2.html:
此外,我通过使用 bouncycastle 构建信任库来使其与 android 兼容:
在此处下载 bouncycastle 提供程序:https ://www.bouncycastle.org/latest_releases.html
并将生成的 truststore.bks 移动到原始资源文件夹中。
在 Android 上,我使用以下代码构建一个SSLSocketFactory
允许我导入生成的 bouncycastle 证书,该证书对服务器进行身份验证:
这适用于低于 6 的 Android 版本。我的问题是在版本 6 及更高版本上尝试使用套接字时出现异常:
我不确定这里发生了什么。在处理客户端证书的过程中似乎有一个失误,这可能是密码套件的不匹配吗?
我已经用 Java 服务器、Java 客户端和 Android 客户端组合了一个最小示例,以帮助在此处诊断此问题:
java - java rsa加密SSLSocket,android转java问题
我需要从安卓手机通过 SSLSocket(不是 http/https)连接服务器。我首先生成了带有私有/公共对的 jks 密钥库,然后生成了一个只有客户端公钥的 jks。然后我首先尝试将 SSLSocketFactory 从 java 设置为 java,然后我让它工作。Android 不接受我的 jks 密钥库,因此我将其转换为 bks 用于 android 端。但是,当我测试它时,服务器端会抛出一个
android端抛出一个
这是测试服务器的代码:
以下是工作 Java 客户端的代码:
这是不工作的android应用程序的代码:
有谁知道问题出在哪里?
groovy - HTTPBuilder - 无法在空对象上调用方法 withInputStream()
我有一个使用 HTTPBuilder 对 SSL 站点进行 RestAPI 调用的 groovy 脚本。要连接,我已将证书导入新的密钥库并使用 HTTPBuilder 支持页面 https://github.com/jgritman/httpbuilder/wiki/SSL中推荐的代码
这是代码:
}
我得到的回应是
我尝试提供密钥库的完整路径,但得到相同的结果。是我没有正确提供路径(我尝试了多次迭代)还是还有其他问题?