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

ssl - 为什么我们需要在 Windows 中安装 .pfx 证书(而不是 .cer)才能使用客户端证书拨打电话?

我编写了一个小型控制台应用程序来使用客户端证书对服务器进行 HTTP 调用。我编写的代码从指定位置读取 .cer 文件以发出请求:

但是,除非您将证书安装在证书管理器中当前用户的个人文件夹中,否则此代码不起作用。更具体地说,它仅在我安装了.pfx证书时才有效,而不是.cer

据我了解,客户端证书仅用于身份验证而不用于加密,对吗?所以,

  1. 为什么我们需要安装证书?为什么我的程序不能从该位置选择 .cer 文件并将其与请求一起发送?和,

  2. 同样,更具体地说,为什么我们需要安装.pfx证书?为什么.cer不做这项工作?

0 投票
2 回答
3837 浏览

c# - 在机器上未安装 PFX 的情况下使用客户端证书发出 HTTP 请求?

我有一个小型控制台应用程序,它使用客户端证书发出 HttpWebRequest:

当我在我的机器上执行此代码时,我将有权访问相应的 .pfx 文件,并且我相信使用此线程中提到的内容我将能够在我的机器上安装 pfx 文件,但我不想这样做这。

有什么方法可以让我使用请求中附加的 pfx 证书来提出这个请求?我的意思是,只需在上面的代码中用 JohnDoe.pfx 替换 JohnDoe.cer 或类似的东西?

谢谢。

编辑: 这个问题的全部要点是我想要一种使用证书的方法,而不必在我的计算机上安装它。我可以按照 esskar 和 xaver 建议的方式使用它,但我不想在我的机器上安装证书。如果这是不可能的,那么有人可以解释为什么我们不能这样做吗?

0 投票
2 回答
5983 浏览

c++ - boost asio SSL 双向认证

我需要一个我正在编写的程序的代码片段Boost Asio SSL。我有一个由两个客户端组成的系统,它们相互连接。我要求他们进行相互身份验证,因此,在handshake()命令结束时,两个客户端都可以确定另一个客户端拥有他们提供的证书的私钥。两个客户端都有一个context对象,让我们调用它们ctx1ctx2每个客户端都有一个公共证书和一个私钥。

是否可以设置上下文对象,以便在我调用socket.handshake()客户端时进行双向身份验证。如果不是,那么实现我的目标的正确方法是什么?

0 投票
1 回答
2226 浏览

ios - 如何在远程加载客户端证书的 iOS 中实现 SSL 相互认证?

我正在尝试在 iOS 应用程序中实现 SSL 相互身份验证。在我看到的大多数示例中,客户端证书与应用程序包捆绑在一起。但就我而言,我需要远程加载客户端证书(即,通过链接或通过电子邮件)。

如果我尝试从外部源(即邮件应用程序)加载证书,它会导航到设置应用程序并将其安装到苹果的钥匙串中。因此,我的应用程序无法访问此证书。

所以有人请为此提出一个想法吗?

0 投票
2 回答
793 浏览

nfc - PN532 MiFare Ultralight C 相互认证

有没有人设法通过使用该芯片的超轻 C 卡获得相互身份验证?我了解身份验证程序,但查看芯片手册中的命令集并尝试了一些我认为实际上不可能的事情,但我想我会在放弃芯片组并重新使用 CJS 编码器之前在这里发布确认

提前致谢

0 投票
1 回答
1153 浏览

ios - GCDAsyncSocket 双向认证

我正在使用 GCD AsyncSocket 创建客户端应用程序以连接到由 SSLServer 套接字创建的带有自签名证书的服务器 java。通过单向身份验证,我可以很好地初始化 SSL 套接字和通信。但是通过双向身份验证,我不知道如何实现它。在 iOS 客户端,我将拥有一个客户端的证书,服务器将基于此证书信任客户端。我也可以很好地从 .p12 文件中读取证书。非常感谢任何建议。

0 投票
1 回答
1413 浏览

passwords - 如何在 PKCS#11 模块上使用私钥而不是使用密钥文件在 OpenSSL 中进行相互身份验证?

我有一个使用 OpenSSL 库的简单 SSL 客户端。我的服务器需要客户端身份验证,因此我必须设置存储在受密码保护的 PEM 文件中的客户端私钥。为此,我使用以下代码:

现在我想知道如何使用存储在安全令牌(使用 PKCS#11 接口)上的私钥而不是从文件中读取它来建立 SSL 连接?

0 投票
1 回答
693 浏览

c# - 如何在 C# 中进行相互身份验证?

我需要知道如何在 c# 中进行相互身份验证。我知道在 WCF 应用程序中这很容易。但是,我必须从 C# 中的控制台应用程序执行两种方式的 SSL 身份验证。我有客户端和服务器的两个公共证书。

任何帮助,将不胜感激!

0 投票
0 回答
385 浏览

mutual-authentication - paw : 双向认证 2 路 SSL

Paw Rest 客户端是否支持相互身份验证(2 路 SSL)?

我找不到如何定义密钥库。

谢谢。

弗洛伦特。

0 投票
5 回答
40860 浏览

java - 与 Tomcat 7 的相互身份验证

我正在尝试设置在 Tomcat 7 中运行的 Java Web 服务以使用相互(2 路)身份验证。似乎无论我做什么,都无法连接到安全端口上的服务。

这是我为创建证书和密钥库等所做的:

这是 server.xml 文件中的连接器:

tomcat-users.xml 文件如下所示:

以下是在启动时设置的:

最后,我将 client.p12 文件复制到我的客户端计算机,并将其导入到 Firefox 的客户端证书中。

第一个问题:当我从 Firefox 访问我的服务的端点(例如 - https://my.server.com:8443/test)时,我得到响应“安全连接失败”。SSL 收到超过最大允许长度的记录。(错误代码:ssl_error_rx_record_too_long)

第二个问题:我真的不想在端口 8443 上运行此连接器。我想在端口 7800(这是我们公司的 HTTPS 标准)上运行它。当我将连接器上的端口更改为 7800 并尝试访问端点(例如 - https://my.server.com:7800/test)时,它永远不会解析页面。

所以,在某个地方我显然错过了一个关键的部分。谁能看到我的错误?

更新:在@Dave G 的反馈之后

运行命令:

产生以下输出:

我还在启动时添加了 -Djavax.net.debug=SSL 。这会在 catalina.out 文件的开头生成以下内容:

然后很多: