问题标签 [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.
c# - 使用带有 X.509 证书的 USB 令牌插槽进行相互身份验证
我正在尝试在 C# 中实现一个客户端库以与 tomcat 服务器进行通信。身份验证应通过在 Windows 客户端的相互 SSL 身份验证中使用带有 X.509 证书的飞天 epass2003 令牌来完成。
但是,每次我运行客户端窗口时,我都会遇到糟糕的情况,因为它会请求令牌密码以继续操作,这对用户来说是一种过度杀伤并且不可接受的操作。
我想知道是否可以取消此请求并以某种方式将其添加到代码中。或者,如果有其他方法可以在不使用 Windows 证书管理器的情况下使用令牌。
这就是我扩展连接器的方式:
这是我如何连接到服务器的示例:
这是 Windows 请求屏幕:
此致,
tomcat - 使用 Tomcat 连接器或自定义套接字工厂配置 Tomcat 7 以进行相互身份验证
是否可以将 Tomcat 配置为使用连接器或自定义套接字工厂执行相互身份验证?
我的场景涉及一个 Tomcat Web 应用程序,其中包括对 DataPower 服务器的 SOAP 客户端调用。
DataPower 需要相互身份验证,但 Web 应用程序客户端中没有任何 SSL 代码。
我没有更改 SOAP Web 应用程序客户端的灵活性,我正在寻找替代方案。
我可以编写一个“转发代理”Web 服务来充当 Tomcat 和 DataPower 之间的 MA 客户端,但我希望在 Tomcat 中提供一个“配置”解决方案,而不是编写更多代码。
我已经搜索了很多,找不到任何符合要求的东西,所以我希望其他人已经遇到过这个问题。
提前谢谢了。
c - 使客户端在身份验证期间向服务器发送证书
我已经使用 OpenSSL 设置了客户端-服务器通信,并且我的服务器正在发送它的证书。现在,我想让我的客户端也向服务器发送证书。在我的客户端,我有以下代码:
这是我的LoadCertificates
功能:
我LoadCertificates
在服务器端具有相同的功能,而且似乎工作得很好。
但是,在服务器端未检测到我的客户端证书。我需要在客户端做些什么来发送证书吗?
我使用此处的代码作为基础对客户端代码进行了修改:http: //simplestcodings.blogspot.in/2010/08/secure-server-client-using-openssl-in-c.html
c++ - OpenSSL 的相互身份验证始终成功
我正在使用 openssl 和 zmq 编写服务器和客户端。我的客户端和服务器需要相互身份验证。但是在我SSL_CTX_set_verify(ssl_ctx,SSL_VERIFY_FAIL_IF_NO_PEER_CERT,NULL)
在服务器上设置之后,无论客户端是否发送证书,握手总是成功的。此外,SSL_get_peer_certificate(tls->get_ssl_())
返回 null 并SSL_get_verify_result(tls->get_ssl_())
返回 0,这意味着X509_V_OK
.
我现在真的很迷茫和绝望。有什么建议或更正吗?
这是我的代码的一部分:
tomcat - 如何在tomcat上做双向认证?
如何使用 OpenSSL 自签名证书在 tomcat 上进行双向 SSL 身份验证 - 需要使用 EC DSA 生成证书。
非常感谢您的建议。在此先感谢
ruby - 如何通过相互身份验证的 SSL 连接到 xml/soap Web 服务?
我正在尝试使用带有证书的 Web 服务,通过带有相互身份验证的 SSL 发送 XML/SOAP。我试过savon
and net/http
,但我因同样的错误而停止:
SSL_CTX_use_PrivateKey:键值不匹配(HTTPI::SSLError)
网络/http:
萨翁:
有解决办法吗?谢谢!
java - 相互 SSL:unsupported_certificate 和客户端证书格式
我被告知使用双向身份验证连接到客户的服务器。服务器身份验证工作顺利,但我们在获取客户端身份验证时遇到了巨大的麻烦。让我试着解释一下我们的麻烦。
前段时间我的公司在 GeoTrust 购买了一个证书,该证书应该完全有效地用作我们的客户证书。显然,客户没有设法将此 GeoTrust 证书适当地添加到他们的信任库中,因此每次我们尝试连接到他们的服务器时,我们都会在 SSL 握手日志中看到错误unknown_ca 。
相反,客户要求我们向他们发送证书签名请求 (csr),我们收到了根证书以及应该用作我们的客户端证书的证书。在相应地更新了我们的密钥库之后,我们现在在我们的 SSL 握手日志中看到了错误unsupported_certificate 。仔细查看客户签名的客户端证书会发现,新证书明确具有服务器身份验证扩展,但没有客户端身份验证扩展。我发现unsupported_certificate和缺少的客户端身份验证扩展之间的相关性非常明显,但是客户拒绝接受缺少的客户端身份验证作为有效解释(因此拒绝为我们创建新的和适当扩展的客户端证书)。这是客户的争论:
客户给我发了一张他的日志没有返回证书的屏幕截图,并声称这个日志条目意味着我以错误的格式通过网络传递了客户端证书:
为了加强他关于我以错误格式提交客户端证书的断言,客户向我发送了以下 TCP 转储屏幕截图,其中pkcs已被圈出:
在我看来,pkcs-9-at-emailAddress只是在证书中包含电子邮件地址信息的标准方式,与以错误格式提交的证书无关。此外,我在 Google 中找到了一个地方,其中提到在客户端证书缺少客户端身份验证扩展的情况下,可能会出现无证书返回日志条目。
为了排除我们的 Java 代码使用的keystore.jks和truststore.jks格式错误,我尝试仅使用 OpenSSL 命令连接到他们的服务器:
openssl s_client -CAfile caroot.cer -cert client.cer -key client.key -connect <host>:<port>
执行此 OpenSSL 命令会导致完全相同的unsupported_certificate错误。
如果有人能帮助我了解我们是否正确或客户是否正确,我将不胜感激。非常感谢。
applet - 智能卡相互认证
嗨,我正在寻找有关使用 SmartCards 进行相互验证的信息,我想知道您是否可以帮助我。我正在研究逆向工程 apdu 命令,想知道如何计算 MAC。例如,我有以下内容:
前两个命令我完全理解它们,但从第三个开始 00 82 是我想知道如何计算 MAC 的地方以及接下来的内容,以进行阅读我想知道要阅读和了解的信息和文档关于相互认证
java - 在带有 javax.net.ssl.SSLHandshakeException 的 Android 上的相互身份验证失败:握手失败
我正在尝试获取相互身份验证请求以在 android 上工作。我正在对我自己的服务器进行测试,所以我有一个自签名的 CA 和客户端证书。
所以我将不得不允许不受信任的服务器证书。
这是我正在做的事情:
然后 AsyncTask 执行请求:
我已经在浏览器和 iOS 客户端中测试了这个请求,但我无法让它在 Android 中工作。
我认为这是允许不受信任的服务器证书的正确方法:
不知道为什么我得到:
javax.net.ssl.SSLPeerUnverifiedException
编辑:
我必须添加自己的 SSLSocketFactory 以信任自签名服务器证书:
一旦我使用它,我会得到以下信息:
javax.net.ssl.SSLHandshakeException:握手失败
编辑2:
我在 Lollipop 上并使用 apache 作为我的网络服务器。我的 apache 网络服务器配置有:
这可能是我的问题吗: HttpClient 在 Android 5.0 Lollipop 中因握手失败而失败
不太确定我需要改变什么。我已经看过了,这似乎是推荐的配置(目前)。
编辑 3:
这是完整的堆栈跟踪:
ios - 将 .p12 证书存储在钥匙串中以供以后使用
我正在尝试按照苹果文档在此处处理客户端 p12 证书:
我已经从文件系统成功加载了一个 .p12 证书:
然后我得到该身份的证书:
但我真正想做的是将证书(或身份)存储在我的应用程序钥匙串中,所以我不会从文件系统中读取它。
几个问题:
- 我应该存储哪个?证书还是身份?
- 如何存储和检索它?
上面的链接讨论了“获取和使用持久钥匙串引用”,这让我很困惑。
它还谈到了“在钥匙串中查找证书”,但它提到使用证书的名称来查找它。我不确定“名称”的来源。