问题标签 [client-certificates]
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.
ios - 是否可以在我的应用程序中使用安装在 iOS 设备上的客户端证书?
我希望能够安装客户端证书(例如通过电子邮件),然后使用该证书来验证我的应用程序发送的请求。我有一种感觉,Apple 不会允许这种访问,但找不到任何明确的答案。这是真的,还是有办法从应用程序中访问安装在设备上的客户端证书?
编辑:澄清一下,这是一个本机应用程序,而不是一个网络应用程序。
c++ - Microsoft HTTP Server API - 使用 SSL,如何要求客户端证书?
我目前正在使用 Microsoft HTTP Server API 版本 2.0 ( http://msdn.microsoft.com/en-us/library/windows/desktop/aa364510(v=vs.85).aspx ) 实现一个小型 HTTP 服务器。
我需要在服务器端启用 HTTPS,并且在客户端请求进来时还需要客户端证书(我需要客户端能够验证服务器和服务器来验证客户端,并且它们应该通过 SSL 进行通信)。
到目前为止,我已经能够启用服务器端 SSL,因此我可以安全地连接到 { https://127.0.0.1:9999/hello } 站点,向服务器发出请求并接收响应,但我无法打开请求客户端证书的功能(并验证它)。
我在我的应用程序代码中说我正在监听“{ https://127.0.0.1:9999/hello }” URL(这是我添加到 URL 组的 URL),然后我使用 netsh.exe 工具绑定了 9999端口到 SSL:
我不确定这个“clientcertnegotiation=enable”到底应该做什么,文档说它应该“打开证书协商”。所以现在我向我的 HTTP 服务器代码添加了一个额外的函数调用:
我知道现在应该提示客户提供证书,但它不起作用(我可能做错了什么,所以这就是我在这里写我的问题的原因)。“答案”的值为 1168 (ERROR_NOT_FOUND)。我使用 firefox 浏览器作为客户端,并在那里添加了一个证书:工具->选项->查看证书->导入,所以 firefox 可能应该使用该证书或提示输入一些证书,但我怀疑 firefox 没有'根本不会收到服务器对客户端证书的请求。
无论如何,HTTP 服务器应该在什么时候请求客户端证书?我认为它应该是在收到请求之后。为了演示我到底在做什么,我使用了 Microsoft 的 HTTP Server 示例应用程序代码 ( http://msdn.microsoft.com/en-us/library/windows/desktop/aa364640(v=vs.85)。 aspx),我已经sligthly修改:
所以我的问题是,如何启用需要客户端证书的功能,以及在收到证书后如何验证证书(当前示例代码仅尝试从客户端接收证书,缺少验证部分)?我真的没有从互联网上找到任何使用 Microsoft HTTP Server API 并需要客户端证书的示例。
已经提前谢谢大家了。
c# - 带有客户端证书的 WCF REST 服务的 WCF 客户端 - 我缺少什么?
好的。我的 WCF REST 服务通过 HttpWebRequest 调用与客户端证书一起运行得很好。但是,如果我使用此代码,它将不起作用:
我收到错误消息:
但是使用完全相同的客户端证书在完全相同的 url上The HTTP request was forbidden with client authentication scheme 'Anonymous'.
调用完全相同的服务就可以了。HttpWebRequest
我也尝试过不使用所有 ServiceCertificate 的东西,但没有任何区别
有人可以告诉我我的 WCF 代码中遗漏了什么吗?
iis - 在 Websphere 8 上安装证书以进行身份验证
我正在尝试将 .pfx 证书添加到 Websphere8 服务器以建立与 IIS 服务器的连接。我尝试将证书作为个人证书添加到 deaultkeystore,并将与签名证书相同的证书添加到 defaulttrustkeystore。每当我通过我的应用程序发送请求时,我都会收到 401 未经授权的错误。我使用 Wireshark 检查了通信 b/w 服务器,但没有来自客户端或服务器的 FINISHED 消息。
因此,我不知道在 websphere 服务器上安装证书以进行身份验证并因此将 XML 作为 HTTPS Post 请求的一部分发送的确切过程。
我联系了网络服务提供商,他说其他用户或已经为此服务实现客户端的人将 pfx 转换为 .cer 并将其与请求一起发送。我也想知道这怎么可能。我正在使用 Java 6 进行编码。
谢谢您的帮助。
java - javax.net.ssl.SSLException:SSLSocketFactory 为空
我对以下代码有疑问...
我尝试使用该System.setProperty(key,value)
方法设置 SSL 上下文的信任库、密钥库和其他属性,但出现以下错误。
有人可以帮我解决这个问题。
wcf - 需要客户证书 - 但仅适用于特定路线
通过以下组合,我的 WCF REST 服务运行良好:
- 标准端点配置将客户端证书添加到标准端点?
- “需要客户端证书”的 IIS7 SSL 配置
- WCF 传输安全,需要指定证书。
我的路由是在 global.asax 中配置的,我使用自定义 WebServiceHostFactory() 和我自己的客户端证书验证。
现在我想限制客户端证书的应用,使其仅适用于我的一条路由 - 我有 4 个 REST 端点,但只有 1 个足够敏感,需要客户端证书。
如何设置我的配置(IIS、WCF、CustomWebServiceHostFactory),以便我可以在同一个网站中拥有多个 webHttp 端点,其中 1 个需要客户端证书,其他只需要 HTTPS?
wcf - WCF - 验证客户端是否需要服务证书?
我认为我的 WCF 身份验证心智模型存在差距,希望有人可以帮助我填补它。
所以,我正在创建一个 WCF 服务,并希望让客户端使用证书和消息级安全性进行身份验证。我希望服务使用链信任来验证这些,这样我就不需要在服务上安装每个客户端证书。目前,我对让服务向客户端进行身份验证不感兴趣。
这是我对执行此操作所需的理解:
- 客户端需要由服务端信任的 CA 签名的证书。
- 该服务需要为该 CA 安装 CRL。
- 服务配置应启用消息安全性,指定 clientCredentialType="Certificate",并为客户端证书验证指定链式信任。
- 客户端配置应启用消息安全性,指定 clientCredentialType="Certificate",以及告诉如何在存储中查找客户端证书的端点行为。
客户端向服务发出请求,发送其证书。该服务看到客户端的证书由其受信任的 CA 签名并允许请求通过。
现在,我发现的此过程的所有演练还包括为服务创建证书的步骤。他们都没有解释这是为了什么,这让我很生气。如果我只想对客户端进行身份验证,为什么需要服务证书?
windows-7 - 如何为通过 SSL 进行双向身份验证的本地测试创建客户端证书?
我正在尝试在 IIS7 上运行的 Web 应用程序上设置双向身份验证。客户将主要是移动设备,首先我试图让一个使用第三代 iPad 运行的演示。我想我会先让它在我的工作站(也运行 IIS)上运行,然后在 iPad 上复制工作证书。
但是我碰壁了。
我已经让网站通过 https 安全运行并安装了自签名服务器证书,但是我似乎无法弄清楚如何生成可以安装在 iPad 上的客户端证书。当我在运行 Windows 7 的本地工作站上工作时,我不能使用通常http://machinename/CertSvr
的方法来执行此操作。
所以我想知道是否有办法makecert
生成测试客户端证书,或者我是否可以更改服务器证书中的使用标志以使其适合在客户端上使用。或者也许有一些工具在谷歌搜索的最后一天还没有发现?
更新:
我找到了这个指南,并按照它来写信。一切似乎都正常,没有错误,最后我得到了两个 pfx 文件,一个用于服务器,一个用于客户端(我使用这些文件生成这些文件pvk2pfx
并保留原始文件.pvk
和.cer
文件以防万一)。
我在.下安装了服务器证书,在.下Certificates (Local Computer) > Trusted Root Certification Authority
安装了客户端证书Certificates (Current User) > Personal
。我还将服务器证书(CA 证书)导入 IIS。当 IIS 配置为接受或忽略客户端证书时,一切正常。但是,一旦将其设置为“要求”,我在请求站点时就会得到 403.7。我还尝试将客户端证书导入 IE/Chrome 中的证书存储区,但还是没有骰子。
有什么明显的我做错了吗?
java - 我需要帮助来理解客户端证书身份验证和使用 jetty 嵌入的登录服务之间的关系
我正在使用嵌入在我的 Java WebApp 项目中的 jetty 7。
我已经设置了 SSL,下一步是处理客户端证书身份验证。在我指定的 web.xml 中:
下面是 startserver 例程中的代码:
我的问题是我应该将什么 loginservice 与 ClientCertAuthenticator 结合使用?或者,如果这不可能,实现我自己的 (DummyAuthenticator) 的最佳方法是什么?
在上面的代码中,我使用了 DummyAuthenticator,它只实现了 Authenticator 接口,但是 validateRequest 方法中的 servletRequest 总是在我期望的地方有一个空的 parameterMap