问题标签 [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 投票
3 回答
15747 浏览

java - 使用HttpsURLConnection时如何覆盖Android发送给服务器的密码列表?

在 TLS 协商期间,客户端向服务器发送支持的密码列表,服务器选择一个,然后加密开始。当我HttpsURLConnection用于通信时,我想更改这个由 Android 发送到服务器的密码列表。

我知道我可以setSSLSocketFactoryHttpsURLConnection对象上使用来将其设置为使用SSLSocketFactory. 当我想更改SSLSocketSSLSocketFactory.

我知道通常可以使用对象编辑此密码套件列表,并使用它们提供的方法SSLParameters将其传递给SSlsocket对象。SSLEngine

但是SSLSocketFactory似乎没有公开这样的方法!

我找不到方法来更改由I 传递给创建SSLParameters的返回SSLSocket对象的.SSLSocketFactoryHttpsURLConnection

该怎么办?

我想这通常也与 Java 有关,而不仅仅是 Android。也许有一种面向对象的方式来做到这一点(例如,将其扩展SSLSocketFactory并提供给HttpsURLConnection?)

0 投票
2 回答
5107 浏览

java - 用 Java 实现一个简单的 HTTPS 代理应用程序?

我正在用 Java 编写一个简单的 HTTPS 代理程序,用于教育目的。我的程序在端口(例如7443)上侦听来自浏览器(例如Firefox)的传入 HTTPS 请求,解析请求并将其转发到所需的目的地(例如https://www.comodo.com)。

Firefox 的代理设置设置为使用我的端口进行 SSL 连接 ( 127.0.0.1 : 7443)。

我的代码简短而简单:

但我发现了以下异常:

异常表示连接可以是纯文本的,但只有来自 Firefox 的 HTTPS 连接设置为使用此端口。我已经记录了 Firefox 发送到我的应用程序的内容,即:

Firefox 正在谈论 palin-text,我认为CONNECT是一个 SOCKS 命令(虽然我不确定),但我没有在 Firefox 的 SOCKS 设置中设置任何内容。下面是 Firefox 代理设置的截图:

火狐代理设置

我在这里想念什么?!我需要做些什么才能使它与 Firefox 或任何其他浏览器一起工作?!

-------------------------------------------------- ----------------------------

对于那些认为这是另一个问题的重复并且已经在另一个问题中得到回答的人,我不得不说:是的,这两个问题都源于一个类似的问题,但所引用问题中的唯一答案是使用 SSL Sockets原来是误导并导致了这个新问题。因此,尽管他们针对的是类似的问题,但这个问题显示了解决问题的完全不同但误导性的路径,因此它可以为未来面临此类问题的人提供有用的指导。

0 投票
1 回答
1878 浏览

android - 在 Android 中使用基于 SSL 的 tcp/ip 套接字

我正在尝试使用适用于 Android 平台的 SSL 来保护我的基于 TCP/IP 的套接字连接。这是我的代码中的一些片段:

客户端:

服务器端:

当我从服务器调用 accept() 套接字调用时,我收到以下异常:

我正在关注这篇文章以生成我的证书和密钥库: http ://randomizedsort.blogspot.in/2010/09/step-to-step-guide-to-programming.html 请建议我是否遗漏了什么或什么其他需要为 Android 平台上的密钥库完成。

0 投票
16 回答
267711 浏览

java - javax.net.ssl.SSLException:收到致命警报:protocol_version

有没有人遇到过这个错误?我是 SSL 的新手,我的 ClientHello 有什么明显的问题吗?该异常在没有 ServerHello 响应的情况下被抛出。任何建议表示赞赏。

{ http://xml.apache.org/axis/ }stackTrace:

...

0 投票
0 回答
9475 浏览

security - javax.net.ssl.SSLHandshakeException:收到致命警报:certificate_unknown

我想使用 Java SSL 会话在客户端和服务器之间建立一个安全通道。

从命令行运行此命令以创建服务器密钥后,我按照以下链接http://www.herongyang.com/JDK/ssl_https.html建立连接。

keytool-genkey-alias 和融keyalg-RSA-keysize 1024-keystore。密钥库

此代码返回一个错误类型“收到致命警报:certificate_unknown”我看不到代码中的错误在哪里?

0 投票
1 回答
3304 浏览

java - 尝试发送到 SSLServerSocket 时出现 SSLSocket 异常握手错误

这是我第一次处理 SSLSockets ,

我创建了 SSLServerSocket 和 SSLSocket ,

ServerSocket 运行正常,但是在尝试运行 SSLSocket (Client) 时,它没有运行,并且这个错误出现在我身上:

严重:null javax.net.ssl.SSLHandshakeException:收到致命警报:sun.security.ssl.Alerts.getSSLException(Alerts.java:192)处 sun.security.ssl.Alerts.getSSLException(Alerts.java:154)处的 handshake_failure在 sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961) 在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312 ) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) 在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) 在 chat.SS.(SS.java:45) 在聊天。 SS.main(SS.java:70)

这是 SSLServerSocket 类的代码:

以及运行时出现错误的 SSLSocket(客户端):

所以我忘了为客户班做些什么?

谢谢你,

编辑 1:我启用了调试,这是调试:

0 投票
1 回答
243 浏览

sockets - 如何在 JAVA JSSE 中处理 TLS/SSL 中的握手消息?

我想知道我们是否可以在 Java 代码中处理消息握手 SSL/TLS,换句话说,在查询 ClientKeyExchange 中我们是否可以操作或选择将发送到服务器的密钥?

0 投票
1 回答
582 浏览

java - Java SSLSocket读取返回-1后该怎么办?

我正在使用 java 服务器连接到具有安全 websockets 的浏览器。连接一切正常,但很多时候我从 socket.in.read(buffer,off,len) 得到一个意外的-1结果,这也发生在帧的中间。通常我在收到 -1 时直接关闭一个套接字,因为它是流的结尾。但是我注意到它也可能发生在连接重置时。我遇到过很多情况,在我的测试中,套接字在读取返回 -1 后会返回有价值的数据。我什至觉得这种情况经常发生。我的问题出现了,有时我只是在这种情况下从套接字中取出一些乱码数据。另一个问题是,当帧无法投递时,没有通知对方…… 那么 TCP/SSL 有什么好处呢?如果您需要将其视为在 java 中传输 websocket 帧的不可靠连接?

我有一些方案可以用来处理不可靠的连接,以确保数据包到达。但我希望有人知道在读取返回-1 后该做什么。

抱歉,这个描述有点模糊......我已经厌倦了解决这个问题。

只是一些垃圾进入的示例(仅提交包含 JSON 数据的文本框架):

这是接收到的帧的另一个例子,它只是有点畸形!?这怎么可能通过 TCP/TLS 连接???:

它应该是 {"keep-alive":"[UUID]"}

同时,我做了更多的测试,发现如果您在收到 -1 后继续阅读,则 10 次中有 9 次有效。因此,即使您正在读取帧的一半并收到 -1,那么您应该以某种方式测试套接字是否关闭,我现在使用:socket.isInputShutdown()。如果不是这种情况,则继续填充缓冲区。为此,我现在使用以下代码,其中套接字是 SSLSocket:

它仍然不是百分百正确,但至少我得到了比以前更可靠的结果。

0 投票
1 回答
133 浏览

java - Java 应用程序 SSLSockets - 身份验证

我正在开发一个 Java 应用程序,我需要通过安全套接字向服务器发送几个字符串,我必须使用由受信任的 CA 生成的我自己的证书

文件证书是 myOwnCRT.crt

客户

服务器

我如何通过 SSLSockets 向服务器发送两个字符串?

我希望你能帮助我。

非常感谢

0 投票
1 回答
373 浏览

java - 基于 SSLSockets java 应用的认证

我正在开发一个 Java 应用程序,我需要通过安全套接字向服务器发送几个字符串(用户和密码),我必须使用由受信任的 CA 生成的我自己的证书,但我遇到了一个异常

服务器

客户

这是输出窗口中的结果:

我希望你能帮助我。

非常感谢