问题标签 [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.

0 投票
1 回答
907 浏览

apache - 使用 mod_rewrite 虚拟 chroot 客户端?

我正在尝试为各种客户端设置一个 webdav 网站来上传/下载文件。但是我不希望每个客户都看到其他客户的数据。每个客户端都使用 SSL 客户端证书进行身份验证,所以我想将它们 chroot 到他们自己的目录树中。

例如:

我认为我可以为此使用 mod_rewrite,但我的规则似乎让我进入了无限重定向循环。有什么想法吗?

0 投票
2 回答
3891 浏览

cocoa - 如何使用 Cocoa 中的 WebView 连接客户端证书?

我正在尝试连接到需要客户端证书的服务器。因此,浏览到此服务器时发生的正常事件流是 Web 浏览器(Safari 和 Chrome)提示用户选择证书并重试操作。

那么如何在 Cocoa 项目的嵌入式 WebView 中实现这一点呢?到目前为止,我已经确定该didFailProvisionalLoadWithError方法中引发了错误:

错误确实是error = Error Domain=NSURLErrorDomain Code=-1206 UserInfo=0x1006a8030 "The server “myserver.xxx” requires a client certificate.
但是我如何显示一个对话框以便用户可以从钥匙串中选择一个证书?

0 投票
1 回答
5532 浏览

java - How to call a web security with message security and client certificate authentication?

I need to call a web service with a java client. This service authenticates clients through certificates at the message level (Ws-Security, not SSL).

It should be possible since, I can generate web services with JAX-WS with mutual certificate security in this dialog.

But I don't manage to create a client. Does anyone has an idea ?

0 投票
9 回答
121207 浏览

web-services - RESTful Web 服务 - 如何验证来自其他服务的请求?

我正在设计一个需要用户访问的 RESTful Web 服务,以及其他 Web 服务和应用程序。所有传入的请求都需要进行身份验证。所有通信都通过 HTTPS 进行。用户身份验证将基于身份验证令牌工作,该令牌通过将用户名和密码(通过 SSL 连接)发布到服务提供的/session资源来获取。

对于 Web 服务客户端,客户端服务背后没有最终用户。请求由计划任务、事件或一些其他计算机操作发起。连接服务列表是事先知道的(显然,我猜)。我应该如何验证来自其他(网络)服务的这些请求?我希望为这些服务实现身份验证过程尽可能简单,但不以牺牲安全为代价。对于这样的场景,标准和最佳实践是什么?

我能想到(或向我建议)的选项:

  1. 让客户端服务使用“假”用户名和密码,并以与用户相同的方式对其进行身份验证。我不喜欢这个选项——只是感觉不对。

  2. 为客户端服务分配一个永久的应用程序 ID,也可能是一个应用程序密钥。据我了解,这与拥有用户名+密码相同。使用这个 id 和密钥,我可以对每个请求进行身份验证,或者创建一个身份验证令牌来对进一步的请求进行身份验证。无论哪种方式,我都不喜欢这个选项,因为任何可以获取应用程序 ID 和密钥的人都可以冒充客户端。

  3. 我可以在上一个选项中添加 IP 地址检查。这将使执行虚假请求变得更加困难。

  4. 客户证书。设置我自己的证书颁发机构,创建根证书,并为客户端服务创建客户端证书。不过,我想到了几个问题:a) 我如何仍然允许用户在没有证书的情况下进行身份验证,以及 b) 从客户端服务的角度来看,这种场景实施起来有多复杂?

  5. 别的东西 - 那里必须有其他解决方案吗?

我的服务将在 Java 上运行,但我故意遗漏了有关它将建立在什么特定框架上的信息,因为我对基本原理更感兴趣,而不是对实现细节感兴趣——我认为最好的解决方案是无论底层框架如何,都可以实现。但是,我对这个主题有点缺乏经验,所以关于实际实现的具体提示和示例(例如有用的第三方库、文章等)也将不胜感激。

0 投票
1 回答
954 浏览

asp.net - 以编程方式或声明方式要求 IIS 中单个 asp.net 页面的客户端证书

标题几乎说明了这一点,我推出了一个带有 SSL 证书的 IIS 7 网站,现在愿意以编程方式或声明方式为单个页面设置“SSL 设置/客户端证书/接受” 。我找到了一种使用 IIS 管理器的方法,但由于一些基础架构限制,我们需要能够在不访问 IIS 管理器的情况下对其进行配置。

任何指针将不胜感激!

非常感谢

0 投票
1 回答
298 浏览

.net - .NET ClickOnce 下载器能否从受要求 PIN 的客户端证书保护的站点中提取文件?

(我在一年前使用较旧的(超过 4.0 版;我不记得具体是哪个)版本的 .NET 框架进行了尝试。非浏览器下载器(据我所知)无法协商客户端证书要求.我现在正在考虑将 ClickOnce 用于另一个部署,使用 .NET 4.0,但我没有资源再次试验。因此,这个问题......)

我正在尝试使用 ClickOnce 部署一个 .NET 应用程序(使用 .NET 4.0)。

我唯一可用于托管 ClickOnce 文件的网站是(并且必须)受客户端证书保护的,该证书要求用户在访问该网站时输入 PIN。

我的理解(这可能是错误的)是 ClickOnce 安装体验首先使用用户的浏览器访问我的网站以下载应用程序文件的子集,然后另外使用较小的应用程序(这是 .NET 框架的一部分安装在工作站)下载运行我的应用程序所需的其余文件。

第二个较小的下载文件的应用程序,它是否能够从要求用户在它(下载器应用程序)访问该站点时提供客户端证书及其PIN 的站点下载文件?

0 投票
0 回答
367 浏览

asp.net-mvc-3 - ASP.NET MVC 中的客户端 PC 身份验证(需要建议)

我有一些身份验证场景,我不确定如何处理。我将不胜感激有关该主题的任何建议。

要求:

  1. 网站将包含一个仅对特定计算机可用的部分。
  2. 网站需要知道当前正在发出请求的是哪台 PC(我需要能够将此 PC 绑定到数据库中的其他表)
  3. 我们可以完全访问将访问网站的 PC
  4. 网站不需要登录,用户应该只看到内容页面而不需要登录。
  5. 解决方案需要安全,因为它必须通过安全审核
  6. 假设每台 PC 都在不同的网络上。

到目前为止我的想法:

  • 使用客户端证书,但我不确定您是否可以为每个客户端颁发不同的证书?如果答案是“您不知道谁在提出请求”,那么它的第 2 个要求不符合要求,因此不是一个选择。
  • 带有模拟的 Windows 身份验证,因此我可以让不同的用户在 PC 上登录(我可以控制机器上登录的用户名/帐户)
  • 基本身份验证并设置 PC 第一次记住用户名/密码。我有点担心这个“记住我”会过期,这会导致大混乱,因为有人不得不再次设置这台电脑......
  • Windows Identity Foundation - 从未尝试过,但如果我能以某种好的方式在这里实现这个场景,如果你能指出我正确的方向,我将不胜感激。

在此先感谢您的帮助。

编辑:
如果可能的话,我宁愿不使用 SSL ......(性能考虑)

EDIT2:
目前我认为最好的选择是检查 PC 是否经过身份验证(是否包含表单身份验证 cookie),如果不是,则将他重定向到一些 https:// 页面,该页面将检查客户端证书,如果证书设置 cookie存在并重定向回目标页面。
这应该不会很慢,因为 SSL 只会在 cookie 过期的极少数情况下使用。
如果您发现此解决方案有任何缺陷,请告诉我。
如果您知道如何创建服务器证书并稍后从中生成不同的客户端证书,我将不胜感激。

0 投票
3 回答
7303 浏览

asp.net - ASP.NET Request.ClientCertificate 在 IIS 7 上返回空

我正在将 Web 应用程序从 IIS 6 服务器迁移到 IIS 7 服务器,但在获取客户端证书时遇到了一些麻烦。

我正在使用的代码如下所示:

在 IIS 6 服务器上,cert.IsPresent总是如此。但是,在 IIS 7 机器上,它始终是错误的。这两个测试都是在同一台计算机上使用 IE 8 完成的。唯一的变化是服务器 URL,因此客户端应该正确设置。

我没有收到任何 SSL 连接错误(我正在通过 访问页面https),并且我已将 SSL 设置 -> 客户端证书:设置为接受(与 IIS 6 配置相同)。

我已经完成并尽可能地将 IIS 7 服务器配置到 IIS 6 服务器,但我仍然没有获得证书。

我还需要查看其他配置区域吗?

此外,如果我将客户端证书:设置为必需,我会在 IIS 7 框中收到 403.7 错误。我不知道这是否是一种症状,但以防万一信息有用......

0 投票
1 回答
3760 浏览

client-certificates - 让 serverxmlhttp 忽略对选项客户端证书的请求

我想访问的某个 SOAP 网络服务器配置为“接受客户端证书”,但不需要它们!

当我直接在 Internet Explorer 中输入 URL 时,它会弹出一个客户端证书(我没有)。当我取消此对话框时,会弹出第二个对话框,输入用户名和密码。这适用于我的用户名和密码。

我正在尝试在使用 ServerXMLHTTP 的脚本中做同样的事情

错误消息是msxml6.dll: An unknown error occurred while processing the certificate.msxml6.dll: A connection with the server could not be established

如何让 ServerXMLHTTP 忽略客户端证书的可选(!)请求并继续进行基本身份验证?或者我可以使用什么其他组件?

笔记:

  • 我无法更改网络服务器上的设置或获取客户端证书。
  • 我也试过 WinHTTP.WINHTTPRequest.5.1 但这没有帮助。
  • 请记住:这个问题是关于客户端证书的。objXMLHTTP.setOption(2) = 13056只会忽略服务器证书错误。
0 投票
1 回答
4402 浏览

linux - 设置对远程服务器执行客户端证书身份验证的代理

我正在设置一个基础结构,其中我有一个配置为需要客户端证书才能访问资源的 nginx Web 服务器。

但是,客户端本身并不支持客户端证书(它是 pip,我们无法修改它以支持证书 [尽管这很容易,因为它是 Python,但仍然如此])。

基本上,我的想法是在每台可以对远程服务器进行证书身份验证的机器上设置一个代理......但我真的不知道这有多容易,或者我将如何去做。理想情况下,代理将尽可能轻量级。

有任何想法吗?:)