问题标签 [truststore]

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 回答
30758 浏览

ssl - weblogic ssl握手失败信任存储问题

当我尝试在 weblogic 中调用 https 服务调用时出现 ssl 握手失败。我已将服务器证书添加到 weblogic 信任库-“cacerts”中。

用于在 weblogic 启动脚本中添加信任库的命令:

导出 JAVA_OPTIONS

我还缺少其他任何东西 - 任何解决此问题的指针?

使用 SSLPoke.java 测试了应用服务器框中的 ssl 连接,它是成功的。

Weblogic 服务器日志跟踪:

0 投票
3 回答
48301 浏览

java - 如何在 Windows 上为 javax.net.ssl.trustStore 配置 trustStore?

我正在尝试使用 imap 从 java 中的电子邮件服务器中提取消息,但遇到了这个异常:

我的同事认为这是配置我的信任库的问题。我已经尝试了以下这两行,但没有任何运气:

关于我需要设置的任何想法。顺便说一句,我的同事通过使用以下命令启动应用程序,让它在 Linux 机器上运行:

但我真的很想让这个在我的开发机器上工作。我读过设置系统属性应该与启动应用程序时的 -D 选项相同。

0 投票
1 回答
13761 浏览

ssl - 运行 Java 进程时隐藏 JKS 密钥库/信任库密码

我有许多 Java 应用程序,它们通过使用 SSL 保护的连接连接到其他应用程序和服务。在开发过程中,我可以使用 JVM 参数指定要使用的密钥库/信任库和密码:

这完美地工作。但是,在生产时需要隐藏密码,使用 JVM args 意味着任何查看进程列表的人都可以看到明文密码。

有没有一种简单的方法来解决这个问题?我考虑将证书导入 JRE 的 lib/security/cacerts 文件,但我的理解是这仍然需要密码。一种选择是将加密的密码存储在文件中,然后让应用程序即时读取和解密,但这将涉及更改和重新发布所有应用程序(其中有很多),所以我如果可能的话,宁愿避免这种情况。javax.net.ssl 库是否有任何对加密密码的本机内置支持(即使它像 base64 编码一样简单,或者任何使密码不是明文的东西)?

任何建议都非常感谢。

0 投票
1 回答
293 浏览

java - java应用程序运行时验证的ssl证书抛出异常

我正在尝试将经过验证的 SSL 证书添加到我的 java 应用程序中。Java 应用程序充当转换服务。它侦听特定 URL 的端口。它通过字符串查找和替换来转换请求的主体。然后,Java 应用 POST 将数据转换为内部服务。

我已向应用程序添加了自签名 SSL 证书。然而,这并不能很好地工作。在 SoapUI 中它工作正常。当我尝试使用 basicHttpBinding 和 HttpWebRequest 从 C# 应用程序调用它时,我收到以下错误:

所以我删除了该证书并添加了一个签名证书。此证书当前附加到 java 应用程序正在侦听的域。当我尝试运行 Java 应用程序时,出现以下异常:

设置密钥和信任库的 Java 代码:

证书存储在密钥和信任库中。有没有人有任何想法?

0 投票
1 回答
3367 浏览

java - 创建信任库以仅验证由 JAVA 中的自定义 CA 签名的证书

我希望这不是重复的。我目前正在使用 Android 上的客户端开发基于 netty 的客户端服务器游戏。我正在尝试创建一个安全的登录过程,所以我尝试在 java 套接字之上使用 ssl。

我设法创建了一个自签名证书并使用了 SSL。问题是我发现的示例源代码使用了一个自定义的 TrustManagerFactory,它不会对证书有效性进行任何检查。由于我不想允许中间人攻击,我搜索了有关 SSL 握手的更多信息,这就是我的理解:

  1. 为了启动 SSL 会话,客户端向服务器发送请求。
  2. 拥有证书(.jks 或 .bks)的服务器将公共信息提取到 X509 证书中并将其发送给客户端。
  3. 客户端检查证书的有效性(在我当前的解决方案中什么都不做)
  4. 如果检查成功,从证书中检索服务器的公钥,生成一个随机密钥,用公钥加密并将其发送到服务器。
  5. 服务器使用他的私钥解密随机生成的密钥。
  6. 客户端和服务器现在共享相同的随机密钥,并使用此密钥进行对称加密(如 AES)开始通信。

除了我自己的服务器,我不需要接受其他任何人的证书,所以我想到了 2 个解决方案:

  1. 将 X509 保存在客户端并创建一个只接受此证书的自定义 TrustManager。该解决方案似乎易于实施,但很难维护,因为服务器端的每次证书更改都需要更新每个客户端上的 X509 证书。
  2. 创建我自己的 CA 证书用这个证书签署我的 ssl 证书,并设法让我的客户只信任所有用我的 CA 签署的证书。

我对 CA 身份验证的理解是:

  1. CA 根证书是包含密钥对的普通证书。
  2. 使用 CA 签署证书意味着在正在签署的证书的末尾添加使用 CA 私钥加密的整个证书的哈希。
  3. 此签名包含在 X509 证书中以及有关 CA 的一些信息中。
  4. 为了检查证书的有效性,客户端生成证书哈希并将其与 X509 证书中包含的解密哈希(使用 CA 公钥)进行比较。

因此,如果我没有弄错所有这些,如果我想实施我的第二个解决方案,我需要向客户提供 CA 证书,以便他可以检查证书。我已经看到可以使用信任库来初始化 à TrustManager。我认为它必须是与根 CA 不同的证书,因为它的整个安全性取决于我的 CA private key 的机密性。所以我的问题是:

  1. 这个客户端信任库应该包含什么以及如何从我的根 CA 生成?
  2. 我有红色的 ssl 引擎因自签名证书而损坏。那么我的第二个解决方案在 android 上可行吗?
  3. 如果这可行,如果我看到有人设法以某种方式获取我的私钥,我该如何使我的证书无效?我有关于 crl 的红色内容,但我不知道如何在我的信任库中生成/使用它们?

提前致谢。

0 投票
1 回答
141 浏览

java - 信任任何第 3 方证书的最小 Java TrustStore?

我正在编写一个必须连接到 SSL 服务器的 Android 客户端。有什么方法可以设置 TrustStore 以使其信任 SSL 服务器发送的任何证书?还是真的是我必须以某种方式获取 SSL 服务器证书并使用一些神秘的命令行命令将其放入客户端上的信任存储文件中?

0 投票
2 回答
2919 浏览

ios - SocketRocket 和 iOS 证书固定

我目前正在使用 SocketRocket 作为我的 iOS 应用程序的 WebSocket 实现,并希望使用 SR_SSLPinnedCertificates 属性将我的服务器的 CA 固定为受信任的证书。我正在寻找一个加载一个或多个证书以传递到 SocketRocket 的好例子。我有以下代码可以工作,但我不确定它是否正确,或者是否有更直接的方法。

0 投票
1 回答
414 浏览

ios - 使用 AFNetworking 的自定义信任存储

我正在开发一些 iOS 应用程序,并且正在下载/上传非常敏感的数据。我正在使用 AFNetworking 来执行该请求,我的问题很简单:我在所有应用程序中仅获得 3 个不同的证书,我可以自定义 AFNetworking 的层以仅接受这 3 个证书吗?

这种操纵的目的是避免“中间人”攻击,从而避免在 HTTP 交换期间注入和/或检索任何附加信息。

0 投票
0 回答
322 浏览

c# - .Net 中来自 java 信任库的信任证书

有什么方法可以让 C# 信任来自 java 信任库的所有根 CA。

也许还有其他方法可以将根证书与 C# 应用程序捆绑在一起?

0 投票
2 回答
699 浏览

cryptography - 将公钥和私钥一起存储在 pkcs12 中是否有风险?

我最近一直在处理一些p12存储私钥和公​​钥的文件。远离密码学专家,我开始思考将公钥和私钥一起存储在同一个存档中(然后通过网络传输)是否会破坏密钥的整个目的。