问题标签 [sslcontext]
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.
python - 带有 SSLContext 的 python 安全 websocket 不起作用
我使用websockets来获取 websocket 服务器。这工作得很好。但现在我想通过 wss 使用安全连接。它在这里说you can set the ssl keyword argument to a SSLContext to enable TLS.
,这就是我所做的。
但是我不能再使用 SSLContext 连接到 websocket
java - 如何在 SSLContext 中使用自定义密钥库来驱动 HTTPS 连接
我必须能够在后端系统的配置文件(不是系统密钥库,而是用户配置)中指定用于验证 HTTPS 连接的证书和密钥,并尝试了以下方法:
- 首先将用户证书和私钥编码为 config.xml 中 Base64 编码的 PKCS#12 文件。(我已从
openssl pkcs12
命令中导出信息并转换为 base64 格式,以便能够从硬连线String
实例中读取它) InputStream
从from a中读取该信息Base64.Decode
并输入到KeyStore#load()
方法。(信息被正确读取,KeyStore
实例存储实际用户信息,已检查)- 在(来自库)中指定它
KeyStore
作为关键信息的来源(这是我认为不正确的做法)SSLContext.Builder
org.apache.http.conn.ssl
- 发出
HTTPS
调用以访问客户端身份验证服务器,该服务器根据客户端提供的证书对客户端进行身份验证。
用于测试连接的代码如下所示:
当与服务器协商凭据时,库发出以下异常,SSL
就像没有使用用户证书一样。我不确切知道此代码中缺少什么,以便客户端选择正确的证书并与服务器正确协商。
抱歉,但由于项目问题,示例中显示的证书已更改为新生成的证书,以及要访问的服务器的 URL。
问题是
在初始化中应该缺少SSLContext
什么来选择(或链接SSLContext
到实际的 HTTPS 调用)HTTPS 调用中的KeyStore
凭据?
编辑
在激活有问题的选项和调试模式后,在 ssl 握手中永远不会考虑用户证书,所以恐怕这个问题与所提到的无关。出于某种原因,服务器证书交换中的 hanshake 停止并且客户端证书永远不会交换:
ruby - 如何获取 Ruby SSLContext 对象的 ssl_version
我现在正在研究 OpenSSL 的 SSLContext 并创建了一个像这样的 Ruby OpenSSL 对象:
它创建了SSLContext
对象的一个实例。我可以使用以下方法更改此 SSLContext 对象:
但是,我想了解/ssl_version
了解ssl_object
. 我怎么做?
当我做:
根据文档,只有一个 setter,而不是一个 getter。
java - Android SSLEngine 恢复 ssl 会话
我正在使用 SSLEngine 在 Android 中加密数据,第一次握手没问题,我有我的加密数据,我有我的会话 ID。
我想恢复我以前的会话以避免创建新会话,但是在 SSLEngine 中,我们无法将 sessionId 配置为在 ClientHello 中设置。
任何人都知道如何在 Android 中使用 SSLEngine 恢复会话?
java - SSL 握手:为什么服务器端在服务器端 ChangeCipherSpec 和 Finished 之间等待 100+ 毫秒?
我正在通过 SSLSocketFactory 编写一个简单的 HTTP 服务器,这是我的 Java 代码:
但性能远低于Tomcat Http11Protocol(bio)。我捕获了 TCP 转储,发现服务器端 ChangeCipherSpec 和 Finished 之间有 100+ms 的差距。但是当我连接到 Tomcat 时,就没有这样的差距了。
我上面代码的 TCP 转储是:
在对 Tomcat 服务器的测试中,TCP 转储如下:
我的 Java 代码中是否存在 SSLContext、KeyManagers 或 SSL 握手的使用问题?
swift - 带有 TLS 的 CFStream
是否可以CFStream
使用 TLS 1.2 进行通信?如果是,最好的方法是什么?设置 aSSLContext
或设置CFReadStreamSetProperty
? 不幸的是,我找不到任何例子。
android - 我可以为不同的服务器使用相同的自签名证书吗?
我正在开发一个 Android 应用程序,我有不同的服务器(例如:server.example1.com、server.example2.com、server.example3.com),我不知道我是否可以在我的应用程序中使用相同的自签名证书或不是?
任何人都可以向我解释正确的做法吗?我应该根本不使用固定在我的应用程序上的自签名证书还是...?
java - Java中同一个类的继承与组合
我在 github 上找到了以下代码:
类似的实现在不同的项目中被广泛使用。我试图弄清楚同时使用继承和组合的目的是什么。看起来只要有一个返回结果的工厂方法就足够了,sslContext.getSocketFactory();
因为它根本不扩展类。
php - 不推荐使用 CN_match 以支持 peer_name
我正在尝试通过 SSL 将 POST 请求从一台服务器发送到 PHP 中的另一台服务器。CN_match
当我在上下文选项中使用时,它可以正常工作。但是,我在错误日志中收到一条弃用消息:
不推荐使用 PHP:不推荐使用 'CN_match' SSL 上下文选项以支持 'peer_name'
问题是,如果我按照建议更改CN_match
为peer_name
请求完全失败并显示以下消息:
无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求。
使用无效值peer_name
会导致预期错误:
对等证书 CN='localhost' 与预期的 CN='test' 不匹配
显然,当我指定“localhost”时,它匹配正确。我是否缺少使用peer_name
代替时所需的其他一些配置CN_match
?
使用 MAMP,PHP 5.6.27