问题标签 [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.
wcf - 具有相互 SSL(在服务和客户端之间)的自托管 WCF 服务失败并显示 403 Forbidden
我正在尝试在自托管的WCF 服务和客户端应用程序(现在的命令提示符)之间设置 Mutual SSL 的演示。最后,我试图找到一个解决方案,在该解决方案中,我在使用证书进行传入连接的服务器和多个客户端之间具有传输安全性(而不是消息安全性),每个客户端都有单独的证书,我可以使用这些证书来唯一地识别每个客户。
我已经尝试了许多不同的方法,但都没有奏效(我无法找到我一直在尝试做的确切示例)。每次我认为我已经接近时,当我尝试调用服务时,我都会在客户端出现异常。我遇到的最常见的例外是:
有没有人对我可能做错了什么有任何想法,或者可能更好地了解如何在上述情况下设置相互 SSL?
完全披露-截至目前,我在同一台计算机上同时运行客户端和服务器。不确定这是否重要。
下面的配置片段
服务和客户端代码相对简单,所以我非常有信心让它们工作。应用程序配置(特别是绑定和行为)和证书“更有趣”,所以我不那么自信。
我如何创建证书(逐字逐句的实际命令)
将证书与端口相关联(逐字逐句的实际命令)
服务器设置
绑定:
行为:
客户
绑定:
行为
更新
因此,我向服务器添加了一个自定义用户名和密码验证器,试图覆盖默认行为并始终允许,无论提供何种凭据(同样,我真的不想要用户名/密码验证)。 这个验证器永远不会被调用。 客户端仍然获得“身份验证方案‘匿名’。” 例外。
服务行为更新
java - Java 相互认证 - 客户端服务器
我正在编写一个简单的 java 客户端/服务器程序,其中只需与服务器建立连接,向它发送一个句子,然后服务器为此发送响应。这实际上是一个直截了当的例子。
在上述情况下,我正在寻找基于 SSL 的相互身份验证。我需要在java中实现它。
如果您有任何示例或如何在 Java 中实现相同的示例,请建议我。
ios - 如何在 RESTful Web 服务中使用具有相互身份验证的 DER 编码证书?
目前我正在开发一个使用相互身份验证以便与 REST 接口通信的应用程序。因为我对这个话题很陌生,所以我研究了几个例子——现在我有一些问题。我希望我能够将所有知识片段拼凑在一起,以便更好地了解整个过程。
该过程应如下所示:
- 我得到了包含服务器公钥的导出服务器证书,并将其添加到应用程序包(稍后用于 SSL Pinning)。
- 第一个请求,代表 2 路身份验证的开始,是一个发布请求,它还包含一个证书签名请求以获取客户端证书(需要与 REST 接口的安全部分进行对话)。CSR 是通过 openSSL 库在代码中动态生成的。
- 服务器的响应返回用于客户端身份验证的签名证书。此证书采用 DER 格式和 Base64 编码。
我用来为第一个请求执行 SSL 固定的代码如下所示,并且 SSL 固定按预期工作。
但是我该如何处理从服务器返回的证书呢?据我所知,我必须使用以下 NSURLConnection 委托方法 - 并以某种方式将此证书提供给服务器(用于进一步请求)。
和
现在我的问题。我看到了几个使用 PKCS12 格式(需要私钥和证书颁发机构)而不是 DER 编码证书的示例,以针对服务器验证自我。但是,如何在 `didReceiveAuthenticationChallenge 中使用我的 DER 格式的签名证书来获取更多请求?还有一个 Android 应用程序使用相同的过程进行相互身份验证,并且不需要 PKCS12 证书。
会很高兴一些提示。谢谢。
tomcat - Apache tomcat 相互认证自签名证书 REST 服务
我想在 Apache Tomcat 上部署我的 REST 服务(war),希望它使用自签名证书和相互身份验证启用 HTTPS。我需要想出一个使用自签名证书的客户端。我希望客户端和服务器交换他们的证书。
我需要关于如何做到这一点的建议。
java - Java卡加密速度
在与卡进行相互身份验证时,我遇到了速度严重不足的问题。这大约需要 13 到 20 秒,这似乎至少是 10 倍。
最慢的部分是“Get-Challenge”,我认为这可能是因为我构建了一个不泄漏的地图和单独的“向左旋转”
除了做一些 XOR、AND、旋转以及所有它们的密钥生成和实际加密(使用 AES-128 完成)之外,由于这种开销,我可以忍受它需要更长的时间。我应该使用瞬态数组吗(这会有很大的不同)?
所有这些都使用 JCOP!
c# - 如何使用 ServiceStack 中的证书对客户端进行身份验证?
我正在探索使用 ServiceStack 作为 WCF 的替代方案。我的要求之一是服务器和客户端必须使用证书相互验证。客户端是一项服务,因此我不能使用任何涉及用户输入的身份验证。此外,客户端需要能够使用单声道在 Linux 上运行,因此 Windows 身份验证不可用。
我已经使用 netsh.exe 将我的服务器证书绑定到我的服务器端口,验证客户端正在获取服务器证书并且数据正在使用wireshark 进行加密。但是,我一生都无法弄清楚如何将服务器配置为需要客户端证书。
有些人建议使用请求过滤器来验证客户端证书,但这似乎非常低效,因为每个请求都会检查客户端证书。性能是一个非常高的优先级。创建自定义 IAuthProvider 似乎很有希望,但所有文档和示例都面向在某些时候涉及用户交互而不是证书的身份验证类型。
https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization
是否可以使用证书通过自托管的 ServiceStack 服务对客户端和服务器进行相互身份验证?
这是我的测试服务供参考。
java - 没有“服务器”的 Java 双向 SSL
我一直在寻找一个在 java 中没有“服务器”的相互身份验证 SSL 的示例,如 weblogic / glassfish / tomcat / 等 - 有这样的事情吗?
也请不要使用外部库,我希望只使用以下内容:
http - 在通过 HTTPS 的相互身份验证/双向 ssl 中,客户端证书是否每次调用都传递给服务器?
另外,每次响应是否也通过了服务器证书?
是否有任何特定的链接/书籍可以让我更具体地阅读这些内容?
谢谢。
iis - 如何监控通过请求发送的客户端证书?
所有证书现在都是使用另一个自签名 CA 证书生成的。我正在为一个项目做 POC。
我必须找出一种方法来获取有关通过客户端请求接收到的客户端证书的信息。我该怎么做呢?
编辑:更具体地说,我想检查来自两个不同传入 Web 请求的两个客户端证书是否相似
security - 存储客户端证书的最佳实践?
我正在构建一个需要相互身份验证的应用程序。所以我会让我的用户上传一堆客户端证书,当他们打电话时,他们可以使用其中任何一个。我将匹配传入请求中的客户端证书,以查看它是否与已存储的任何证书匹配,如果匹配,则该请求将被兑现。
现在我试图弄清楚存储这些客户端证书的最佳方式是什么。我在想我可以将它们存储在数据库或某种文件/blob 存储中,或者我知道它们也可以安装在机器的存储中?
这些选项中的哪一个是理想的或被认为是最佳实践?
存储客户端证书的最佳做法是什么?
编辑:我的服务器实际上是在带有 IIS 的 Windows 机器上运行其他用户将使用的服务。