问题标签 [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 - Java 中的密钥 SSL 套接字连接
我正在加密服务器和客户端之间的 tcp 连接。在研究和测试过程中,我倾向于使用密钥加密。我的问题是我找不到任何有关如何实现此功能的教程。我发现的教程围绕一次性 https 请求展开,我只需要一个 SSL 套接字。
到目前为止我编写的代码如下。我几乎可以肯定它需要扩展,我只是不知道如何。任何帮助表示赞赏。
接受客户端连接的服务器代码
我只是不知道如何实际握手。
参考:http ://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/JSSERefGuide.html
java - LinkageError:加载程序约束违规:
帮我解决这个问题?我正在与 java 进行 Netsuite 集成,我将所需的 jar 文件添加到我的项目中。添加部署在 jboss 6.1.0 中的 jar 后。添加此 jar org.apache.sling.commons.log-2.0.6.jar 后出现以下异常。这是我的堆栈跟踪。
java - 为什么 SSLSocketFactory 缺少 setEnabledCipherSuites?
SSLSocketFactory
提供getDefaultCipherSuites
(默认情况下在套接字上启用的密码)和getSupportedCipherSuites
(可以启用的密码,如果需要)。
但是,SSLSocketFactory
不提供setEnabledCipherSuites
一次配置密码列表以提供对后续套接字的偏好。
事实上,我认为制作真正复杂的炒锅流程setEnabledCipherSuites
的一部分。SSLSocket
例如,HttpsURLConnection
不提供 a getSocket
,它确实打破了这个流程:
我认为也可以这样说,SSLContext
因为它有类似getDefaultSSLParameters
and的方法getSupportedSSLParameters
。
我试图为(不)能力提出一个合理的安全工程原因,但我做不到。也许这个决定有软件工程的原因。(我怀疑有一个很好的理由,我目前缺乏洞察力)。
为什么Java缺乏配置的能力SSLSocketFactory
?这显然是一个设计决定,我试图理解为什么它是以牺牲图书馆相关部分的安全为代价的。
java - createServerSocket 返回 java.net.SocketException:套接字失败:EACCES(权限被拒绝)
我正在尝试使用 sslContext.getServerSocketFactory().createServerSocket(port); 创建服务器套接字
但其给予例外许可被拒绝。下面是我的完整代码。
我已经尝试了多个端口,但我都遇到了同样的错误。
以下是异常消息。java.net.SocketException:套接字失败:EACCES(权限被拒绝)
android - 在android中使用socketFactory在createsocket中获取null
我正在用 android 编写代码以使用 SSL 连接服务器。Android 不支持 JKS,我使用 BKS,我没有将 BKS 文件放在服务器中,我正在连接到服务器中没有 BKS 文件的服务器,我将 BKS 文件放在我的 android 项目中,我在这一行中得到 null:
我该如何解决我的问题?
java - SAAJ 包括客户端证书
我想通过 https 调用 Web 服务,我需要包含客户端证书。我正在使用 SAAJ
但是如何包含客户端证书?
java - Java 代码未发布证书
我正在使用 2 路 ssl 身份验证来安全地发布数据。客户给了我他们的证书,我加载到信任库中,我的服务器证书是他们在我给他们我的 CSR 后生成的。我已将服务器证书加载到密钥库中。我的代码正在接受他们的证书,发送密钥而不是服务器证书。使用的代码如下。请协助;
错误:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure。
原因:空证书通过。
调试显示;
websphere - Websphere 7 javax.mail.MessagingException:SSLSocketFactory 为空
我正在尝试使用 SSL 连接到在 Websphere 7 上运行的邮件服务器。将代码作为独立的测试主要方法运行没有问题,一切正常。我在 Websphere 上运行代码也没有问题 - 连接到邮件服务器(例如 imap.seznam.cz),但是当我不使用 SSL 时。如果我想使用 SSL,则会抛出如下异常:
javax.mail.MessagingException:SSLSocketFactory 为空。如果调用 javax.net.ssl.SSLSocketFactory.getDefault() 来创建套接字并且未设置 javax.net.ssl.* 属性,则会发生这种情况。嵌套异常是:
javax.net.ssl.SSLException: SSLSocketFactory 为空。如果调用 javax.net.ssl.SSLSocketFactory.getDefault() 来创建套接字并且未设置 javax.net.ssl.* 属性,则会发生这种情况。
在 com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:571)
在 javax.mail.Service.connect(Service.java:288)
这是代码的一部分:
参数取自属性文件...
ssl true,imapServer imap.seznam.cz,imapPort 993
这只是为了检查 SSLSocketFactory 是否为空,在代码中不需要
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); System.out.println(sslsocketfactory);
我可以看到 sslsocketfactory 不是 null ans 类型:com.ibm.websphere.ssl.protocol.SSLSocketFactory
我尝试的是:
- 我有来自邮件服务器的证书存储在 Websphere 上的受信任存储中(使用管理控制台,从服务器的端口读取,我可以在那里看到它)
- 我在 Websphere 服务器的属性和代码中设置了一些 javax.net.ssl.* 属性,如您所见 - 但我认为没有必要
- 我假设 Websphere 正在从管理控制台中看到的信任存储位置读取证书:${CONFIG_ROOT}/cells/T431sNode03Cell/nodes/T431sNode03/trust.p12
任何 Websphere 专家都可以帮我解决这个问题吗?我试图修复它几天但没有成功:-(
正如我所提到的,它在不使用 SSL 时在 Websphere 上工作,但在对同一邮件服务器使用 SSL 时不运行(例如 imap.seznam.cz,也是 imap.gmail.com),并且在运行时使用 SSL 工作正常在 Websphere 之外作为独立的 java 应用程序。
谢谢大家,伙计们!
更新:
感谢 Gas 为我指出了如何在 Websphere 中配置邮件的正确方法。所以我做到了,我使用的是内置邮件提供程序,只创建了 2 个邮件会话
- 一种使用“imaps”提供程序支持 SSL
- 另一个使用“imap”提供程序不支持 SSL
两个会话都定义了相同的服务器并启用了调试。
在java代码中我这样做:
和有趣的想,结果是完全一样的。当我使用非 SSL 会话时,一切正常,但是当我使用 SSL 会话时,出现此异常:
更新2:
我从这个例子中创建了一个新的项目:
http://www.mkyong.com/maven/how-to-create-a-web-application-project-with-maven/
我只向控制器添加了与邮件会话相关的代码:
当我部署这个新的网络应用程序并调用它时,同样的错误。在 WEB-INF/lib 中只有与 spring 和 commons 日志相关的 jar:
所以我认为这与服务器设置有关?我使用 Websphere 7.0.0.31。我在管理控制台(从端口读取)中将邮件服务器证书添加到 NodeDefaultTrustStore,我可以在那里看到它。
这是我们在项目中使用的 jar 列表:
我认为这也可能会有所帮助,来自我的 WAS 上的 java.security 设置:
java - 使用附加代码进行 SSLSocket 通信是否安全?
我开发了一个聊天服务器和客户端Sockets
,一切都很好,直到我在网上某处读到普通Socket
通信容易受到攻击。谷歌搜索了一段时间后,我发现了这个页面,其中显示了一个示例SSLServerSocket
和SSLSocket
实现(下面的代码)。
如果我按照以下代码中的步骤操作,我想知道我的服务器和客户端之间的通信是否安全。
服务器代码
客户代码
java - DefaultHttpClient、证书、Https:访问停止
我必须连接到安全的 https url,并按照以下步骤操作:
- 创建
HttpClient
:
2.我创建一个HttpPost
:
3. 我执行了请求:
响应显示访问被拒绝。
有人可以帮助我理解我做错了什么吗?