问题标签 [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.

0 投票
0 回答
688 浏览

python - 带有 SSLContext 的 python 安全 websocket 不起作用

我使用websockets来获取 websocket 服务器。这工作得很好。但现在我想通过 wss 使用安全连接。它在这里you can set the ssl keyword argument to a SSLContext to enable TLS.,这就是我所做的。

但是我不能再使用 SSLContext 连接到 websocket

0 投票
0 回答
1687 浏览

java - 如何在 SSLContext 中使用自定义密钥库来驱动 HTTPS 连接

我必须能够在后端系统的配置文件(不是系统密钥库,而是用户配置)中指定用于验证 HTTPS 连接的证书和密钥,并尝试了以下方法:

  • 首先将用户证书和私钥编码为 config.xml 中 Base64 编码的 PKCS#12 文件。(我已从openssl pkcs12命令中导出信息并转换为 base64 格式,以便能够从硬连线String实例中读取它)
  • InputStream从from a中读取该信息Base64.Decode并输入到KeyStore#load()方法。(信息被正确读取,KeyStore实例存储实际用户信息,已检查)
  • 在(来自库)中指定它KeyStore作为关键信息的来源(这是我认为不正确的做法)SSLContext.Builderorg.apache.http.conn.ssl
  • 发出HTTPS调用以访问客户端身份验证服务器,该服务器根据客户端提供的证书对客户端进行身份验证。

用于测试连接的代码如下所示:

当与服务器协商凭据时,库发出以下异常,SSL就像没有使用用户证书一样。我不确切知道此代码中缺少什么,以便客户端选择正确的证书并与服务器正确协商。

抱歉,但由于项目问题,示例中显示的证书已更改为新生成的证书,以及要访问的服务器的 URL。

问题是

在初始化中应该缺少SSLContext什么来选择(或链接SSLContext到实际的 HTTPS 调用)HTTPS 调用中的KeyStore凭据?

编辑

在激活有问题的选项和调试模式后,在 ssl 握手中永远不会考虑用户证书,所以恐怕这个问题与所提到的无关。出于某种原因,服务器证书交换中的 hanshake 停止并且客户端证书永远不会交换:

0 投票
1 回答
276 浏览

ruby - 如何获取 Ruby SSLContext 对象的 ssl_version

我现在正在研究 OpenSSL 的 SSLContext 并创建了一个像这样的 Ruby OpenSSL 对象:

它创建了SSLContext对象的一个​​实例。我可以使用以下方法更改此 SSLContext 对象:

但是,我想了解/ssl_version了解ssl_object. 我怎么做?

当我做:

根据文档,只有一个 setter,而不是一个 getter。

0 投票
0 回答
43 浏览

java - Android SSLEngine 恢复 ssl 会话

我正在使用 SSLEngine 在 Android 中加密数据,第一次握手没问题,我有我的加密数据,我有我的会话 ID。

我想恢复我以前的会话以避免创建新会话,但是在 SSLEngine 中,我们无法将 sessionId 配置为在 ClientHello 中设置。

任何人都知道如何在 Android 中使用 SSLEngine 恢复会话?

0 投票
1 回答
173 浏览

java - SSL 握手:为什么服务器端在服务器端 ChangeCipherSpec 和 Finished 之间等待 100+ 毫秒?

我正在通过 SSLSocketFactory 编写一个简单的 HTTP 服务器,这是我的 Java 代码:

但性能远低于Tomcat Http11Protocol(bio)。我捕获了 TCP 转储,发现服务器端 ChangeCipherSpec 和 Finished 之间有 100+ms 的差距。但是当我连接到 Tomcat 时,就没有这样的差距了。

我上面代码的 TCP 转储是:

在对 Tomcat 服务器的测试中,TCP 转储如下:

我的 Java 代码中是否存在 SSLContext、KeyManagers 或 SSL 握手的使用问题?

0 投票
0 回答
77 浏览

android - SSLSocket enabledProtocols 不返回 tls v1.2

我正在测试 Android 4.2.2 (API 17) 并运行以下代码。

当我检查 SocketFactory 时,我看到如下:

在此处输入图像描述 为什么不显示TLSv1.2

我在 Android 6.0 上运行相同的代码,它确实返回TLSv1.2. 根据 SSLContext API 文档,TLSv1.2API 16+ 支持,Android 4.2.2 是 API 17。它应该返回TLSv1.2但不确定为什么它没有在enabledProtocols.

0 投票
1 回答
696 浏览

swift - 带有 TLS 的 CFStream

是否可以CFStream使用 TLS 1.2 进行通信?如果是,最好的方法是什么?设置 aSSLContext或设置CFReadStreamSetProperty? 不幸的是,我找不到任何例子。

0 投票
0 回答
32 浏览

android - 我可以为不同的服务器使用相同的自签名证书吗?

我正在开发一个 Android 应用程序,我有不同的服务器(例如:server.example1.com、server.example2.com、server.example3.com),我不知道我是否可以在我的应用程序中使用相同的自签名证书或不是?

任何人都可以向我解释正确的做法吗?我应该根本不使用固定在我的应用程序上的自签名证书还是...?

0 投票
2 回答
768 浏览

java - Java中同一个类的继承与组合

我在 github 上找到了以下代码:

类似的实现在不同的项目中被广泛使用。我试图弄清楚同时使用继承和组合的目的是什么。看起来只要有一个返回结果的工厂方法就足够了,sslContext.getSocketFactory();因为它根本不扩展类。

0 投票
1 回答
724 浏览

php - 不推荐使用 CN_match 以支持 peer_name

我正在尝试通过 SSL 将 POST 请求从一台服务器发送到 PHP 中的另一台服务器。CN_match当我在上下文选项中使用时,它可以正常工作。但是,我在错误日志中收到一条弃用消息:

不推荐使用 PHP:不推荐使用 'CN_match' SSL 上下文选项以支持 'peer_name'

问题是,如果我按照建议更改CN_matchpeer_name请求完全失败并显示以下消息:

无法打开流:HTTP 请求失败!HTTP/1.1 400 错误请求。

使用无效值peer_name会导致预期错误:

对等证书 CN='localhost' 与预期的 CN='test' 不匹配

显然,当我指定“localhost”时,它匹配正确。我是否缺少使用peer_name代替时所需的其他一些配置CN_match

使用 MAMP,PHP 5.6.27