问题标签 [mutual-authentication]

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 投票
4 回答
31506 浏览

java - 警告:未找到合适的证书 - 无需客户端身份验证即可继续

团队尝试使用 HTTPS 完成相互握手时遇到以下问题

我的 JAVA 课程如下

我正在准备一个 jar 文件并从 UNIX 框中测试它

使用以下命令 java -Djavax.net.debug=ssl -cp snSSLclientTrustWithStoreCCC.jar cassandra.cass.ClientCustomSSL

我关注了 为什么在 SSL 握手期间 java 不发送客户端证书? 并且还完成了布鲁诺提到的所有步骤。

我不确定我在这里缺少什么。任何帮助将不胜感激

0 投票
1 回答
107 浏览

security - 离线模式下的相互认证

我是加密和相互身份验证的新手。我应该有一个颁发证书的服务器(可能在自签名的 Linux 机器上)和访问该服务器以获取证书的客户端,然后这些客户端通过验证服务器颁发的证书而不联系客户端在它们之间建立相互身份验证服务器(即处于离线模式)。

谁能给我指出正确的视频教程或代码和描述链接,这些链接对实现上述场景很有用。

谢谢。

0 投票
1 回答
313 浏览

web-services - 通过证书的 JAX-WS 独立服务器相互认证

我有一个使用 TLS 的简单 JAX-WS 独立服务器:

我想在使用 Web 服务之前使用客户端证书来创建相互身份验证。另外我想看看客户端使用什么证书来读取 DN 和其他证书属性。

我该怎么做?

0 投票
2 回答
417 浏览

tomcat - Tomcat + SNI + 相互认证

我知道 Tomcat 同时提供 SNI 和相互身份验证,但是否可以仅对选定的应用程序/路径启用 MA?即假设我的服务器上有以下应用程序/端点:

其中/app2/human被人类使用,/app2/robot被机器人、计算机和其他设备使用(例如 /app2/human 服务 HTML 和 /app2/robot 服务 JSON)。现在,我是否可以以某种方式将 Tomcat 配置为通过 SSL 接受与/app1/app2/human 的连接而无需 MA 以及仅在客户端提供有效证书的情况下与/app2/robot的连接?

当然,我想在不为每个应用程序配置单独的端口/连接器的情况下做到这一点,这很容易。

提前致谢。

0 投票
1 回答
814 浏览

ssl - 2 路 SSL/TLS 配置

如果我在仅服务器身份验证中正确理解 SSL/TLS,则在握手后,服务器向客户端发送它的公钥和由 CA 签名的数字签名证书。如果客户端拥有这个 CA 的公钥,它可以解密证书并与服务器建立信任。如果它不信任 CA,则通信停止。在客户端需要向服务器进行身份验证的 2 路 SSL 中,在客户端收到公钥和数字签名证书后,客户端将通过其公钥和数字签名证书向服务器发送。服务器将检查它是否有客户端证书的公钥,如果有,它可以与客户端建立信任。我正在 weblogic 服务器上设置相互身份验证 [2 路 ssl] [在这种情况下是客户端,呼叫出站到网络服务],第三方向我发送了一个数字签名的证书和一个证书链。为什么我需要这些。这不是握手后服务器回复的吗?

0 投票
0 回答
350 浏览

ssl - Openssl 客户端证书

我正在尝试使用自签名证书创建一个基本的 SSL 套接字。我在OpenSSL关注 Ubuntu 的指南。我有一个工作server_crt.pemserver_key.pem. 当我将它server_crt.pem放在我的客户端(以及将它放在我的服务器中)时,SSL 套接字就可以工作了。

但是我知道客户端应该有自己的证书并且没有服务器的副本。我一直在寻找重复项,但没有找到任何直接的答案......

如何创建链接到我的自签名 CA 文件的客户端证书?

0 投票
2 回答
9724 浏览

ssl - s_client 和 gethostbyname 失败

我正在与一家外部公司合作。让我们打电话给他们evilcorp.com。我想使用 openssl 来调试双向 SSL 握手。

  • https://evilcorp.com设置为不需要客户端身份验证。
  • https://evilcorp.com/webservices设置为要求客户端身份验证。

如何在 openssl.xml 中指定此路径。所以基本上这有效:

但这不起作用,让我gethostbyname 失败

我怎样才能让它工作(如果可能的话)

0 投票
0 回答
1214 浏览

google-chrome - 使用 P7B 证书进行客户端认证

我们正在与服务提供商集成,我们是使用他们服务的客户。我们需要使用相互身份验证(2-way SSL)。我有 PKCS#7 文件并将 .p7b 文件导入我的 chrome 浏览器。我无法从我的浏览器成功地进行 SSL 握手工作。关于使用 P7B 文件从浏览器进行测试的任何指针?

注意:我们有使用 JKS 的 java 客户端,我可以使用浏览器中的 P12 文件进行测试。我想用 P7B 文件测试的原因是因为我们不想与服务提供商共享 P12 文件。

0 投票
1 回答
296 浏览

security - 服务器到服务器企业 API 安全

我正在构建一个托管在 Azure 云中的 .NET Web API 应用程序,它需要使用托管在公司 Intranet 中的不同 API。假设我正在构建两个API。

客户端 = Azure .NET Web API 服务器 = Intranet API

我需要知道保护从客户端到服务器的请求的最安全方法。这是我登陆的地方:

  • 2-Leged OAuth
  • 双向 TLS
  • 用户名密码

我喜欢两条腿的 OAuth,因为它的简单性和令牌方法,但是我觉得这是不安全的,因为如果密钥被泄露,整个方法就会被破坏。

相互 TLS 似乎是最安全的,尽管工作量最大。

用户名和密码似乎不再相关(或与前两个一样安全)。

问题我是坚持使用 Mutual TLS,还是我的假设不正确?另外,我可以采取另一种方法吗?

免责声明 - 有类似的帖子,但我觉得他们没有详细说明每个人带来的安全级别,也没有很好地解释为什么他们应该使用一个而不是另一个。

0 投票
1 回答
563 浏览

android - ssl23_get_server_hello:tlsv1 警报握手失败 android 4.4

我正在开发一个带有 Android 客户端和 Apache 服务器以及相互身份验证(即客户端证书)的客户端 - 服务器应用程序项目。我在 SSL/TLS 方面很差。

服务器身份验证一切正常,但是当涉及到客户端身份验证时,会出现此错误:ssl23_get_server_hello:tlsv1 alert handshake failure发生。我还多次使用 WireShark 检查数据包,并且多次使用我自己创建的 CA 创建自签名证书。

我应该提到我已经SSLVerifyClient在“require”和SSLVerifyDepthon上设置了Apache属性,1并且SSLCACertificateFile也设置了。在“可选”上一切都很好,但我不希望它是那样的。

localhost当我使用它进行测试时,似乎一切都很好,我没有问题,openssl s_client我解决了客户端证书和密钥以及 CA 文件。

似乎问题是android客户端身份验证。我测试应用程序的 Android 设备版本是 Android 4.4 (Kitkat),我的 Apache 密码套件是这样的:

我搜索了很多,我想问题可能是客户端和服务器密码不匹配,但我不确定它是否正确,我不知道如何解决它。

非常感谢你的帮助。


更新

我正在使用NoSSLv3SocketFactory.java类来避免 sslv3。

它变成了这个错误:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure,这是我的数据包捕获我的数据包捕获 ,这也是我的 ssl 访问日志: