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

c# - 传递客户端证书仅适用于我的机器

我有一个 Web 服务,它通过要求消费的第三方应用程序通过客户端证书来保护。我已经在生产环境和客户端上安装了证书。此过程目前适用于具有类似设置的其他客户端。当前版本是用 .NET 3.5 编写的,可以在我的 cassini 下的开发机器上完美运行(并且独立运行),但拒绝在我的生产机器上使用相同的代码和证书设置。我已确认提供者 Web 服务通过浏览器接受安装在客户端上的证书,但是当以编程方式将证书添加到 Web 服务调用时,我得到 403,访问被拒绝。在向受保护的 Web 服务发出请求之前,我输出添加到调用中的证书的指纹,它确实是附加的正确证书。我的想法是,在某个地方,它无法访问证书的私钥部分。

有任何想法吗?

注意:我已授予 IIS 进程对相关 ~/crypto 目录的访问权限。

这是 C# 和 .NET 3.5

0 投票
4 回答
23540 浏览

authentication - 如何从断开的网络生成 SSL 客户端证书?

我有一个独特的情况,我需要在 IE 浏览器和 IIS 6 之间通过 HTTPS 实现客户端证书身份验证。浏览器和 IIS 被防火墙隔开,只允许浏览器在 SSL 端口上连接到 IIS。

我们在与 IIS 相同的网络上有一个内部证书服务器。我已经为 IIS 生成了一个 SSL 服务器证书并已安装。我将 IIS 配置为仅允许 SSL,需要客户端证书。

这里的限制是浏览器机器在断开的网络上,所以我不能像往常一样访问 CA 的http://caserver/CertSrv URL 并请求客户端证书

我想如果有一种方法可以针对根 CA 的公钥生成 CSR,我可以将其复制到 CA 服务器以生成客户端证书。但是,在 IE 或证书 MMC 中似乎没有任何规定可以做到这一点。证书 MMC 似乎需要直接连接到 CA。

以前有没有人解决过这个问题?

仅供参考,所有引用的服务器都运行 Windows Server 2003。

更新:感谢 Jonas Oberschweiber 和 Mark Sutton 指出 CertReq.exe 命令行工具。使用它,我生成了一个 CSR,因此生成了一个成功安装的客户端证书。但是,在访问有问题的 IIS 服务器时,IE 显然没有发送此客户端证书;它仍然会生成 403.7“禁止:需要 SSL 客户端证书”。我怀疑原因是客户端证书的主题字段与运行 IE 的帐户的用户 ID 不匹配,因此可能没有发送不匹配的客户端证书。主题与我用来提交 CSR 并在防火墙另一端生成客户端证书的用户相匹配。

主题字段重要吗?我还需要做些什么来让 IE 发送这个证书吗?

0 投票
4 回答
4683 浏览

.net - 无法在 .net 中发布 https WebRequest?

您好我在尝试在 Https 下发布 WebRequest 时遇到问题。

我收到以下错误

1.-底层连接已关闭:无法连接到远程服务器。

2.-操作超时

3-底层连接已关闭:无法为 SSL/TLS 建立安全通道。

我尝试了我公司和客户公司的大约 3 或 4 个不同的代理,即使我直接与 ISP 提供商没有任何限制,我在执行以下方法时遇到上述错误

这是否发生在代理后面,请求只能从代理后面的一台 PC 成功发布。代理没有安装客户端证书。

这是在 .net framework 1.1 下,并且请求已经包含网络凭据。

可能是什么?

更新

内部异常第三个错误如下:函数成功完成,但必须再次调用才能完成上下文

根据 iisper.h文档,此错误属于

MSDN上,这是指

SEC_I_CONTINUE_NEEDED 客户端必须将输出令牌发送到服务器并等待返回令牌。然后将返回的令牌传递给 InitializeSecurityContext (Schannel) 的另一个调用。输出令牌可以为空。

这是否意味着 PC 缺少客户端证书?

0 投票
3 回答
4400 浏览

iphone - iPhone 客户端证书

我想验证我正在编写的应用程序是否在 iPhone 上运行。完美的是:Apple 将 SSL 客户端证书放入每个 iphone 中,该证书可以由接收服务器进行身份验证。我是这种情况?

我还没有开始研究这个,我会更新我发现的任何东西。

更新: 是一些关于证书和钥匙串的 Apple 文档。所以:

在 iPhone OS 中,Keychain Services 在授予应用程序访问钥匙串之前检查应用程序的签名,并让应用程序只能访问其自己的钥匙串项目(可能例外,应用程序已获得持久引用的项目)。在 iPhone OS 中,从不要求用户进行身份验证,Apple 也不提供 Keychain Access 实用程序。

0 投票
1 回答
2195 浏览

c# - 不使用密钥库的客户端证书

我试图弄清楚是否有任何方法可以让 .NET 客户端使用客户端证书而不以任何方式涉及 Windows 密钥库。

我有一个这样的代码片段:

但是,这仅在我的证书存储中安装了“test.pem”中引用的证书时才有效。我认为这是因为密钥是谈判所必需的。如果我在商店中没有证书/密钥,则证书不会随请求一起发送。

我想要做的是能够从一个或多个文件中提供证书和私钥,并且不以任何方式涉及 Windows 证书存储。

有没有办法做到这一点?

0 投票
1 回答
1419 浏览

perl - 如何确定连接在 mod_perl 中使用的 SSL 客户端证书?

我正在用 Perl 编写一个 Web 服务,它将在带有客户端证书的 SSL (HTTPS) 下运行。如何确定当前连接中客户端正在使用哪个证书,以便过滤掉不需要的证书?

注意:Web 服务作为 mod_perl 脚本运行。

0 投票
1 回答
551 浏览

openssl - 我自己/小型组织的证书颁发机构

我需要一个满足以下条件的小型 CA 软件:

  1. CLI 接口(我们都非常讨厌服务器软件的 gui 东西,不是吗?)
  2. 为网站颁发证书。所以我可以在客户端机器上安装一个根证书来摆脱那个警告)
  3. 使用预定义的值颁发用户证书(作为 p12 和其他东西,所以我可以使用它们进行身份验证)。

我在看tinyca,但它有点过时了,对我来说效果不佳。

Openssl 可以完成所有这些工作,因此我可以编写一堆 shell 脚本(或者 Makefile)来自动执行此任务。所以我想知道是否已经有人这样做了?

0 投票
3 回答
19112 浏览

java - Mirth: calling an SSL SOAP web service with a client certificate

The scenario is around calling an external SSL SOAP web service from within Mirth. The web service is requires an SSL/TLS connection along with a client certificate.

The intention is to use the built-in SOAP Sender Destination to call the remote secure web service, and somehow include that client certificate.

I understand that you first need to install that client certificate into the Java runtime. This may be within the Java runtime's certificate store or the Jetty certstore.

The platform:

  • Windows 2003 SP2
  • Mirth 1.8
  • Java jre1.5.0_09

Question: what configuration steps (Mirth, JRE certificate stores, etc.) would you suggest to successfully have a Mirth SOAP Sender include a client certificate (*.cer) when calling a web service secured by SSL?

0 投票
2 回答
1656 浏览

firefox - Apache 2 身份验证错误

尝试使用 SSL 证书实现客户端身份验证,根据此 HOWTO,我收到以下错误。

阿帕奇:

重新协商握手失败:不被客户接受!?

火狐:

ssl_error_handshake_failure_alert

我认为这是一个配置错误,但无法找到它。

附加信息:
商业 CA 服务器证书服务器在 Apache 2.2 和Passenger 中安全工作没有问题。只有客户端身份验证相关指令不起作用。

0 投票
9 回答
429656 浏览

java - Java HTTPS 客户端证书认证

我还很陌生HTTPS/SSL/TLS,我对客户在使用证书进行身份验证时应该呈现的内容感到有些困惑。

我正在编写一个 Java 客户端,它需要对POST特定的URL. 那部分工作正常,唯一的问题是它应该完成HTTPS。该HTTPS部分相当容易处理(使用HTTPclient或使用 Java 的内置HTTPS支持),但我坚持使用客户端证书进行身份验证。我注意到这里已经有一个非常相似的问题,我还没有用我的代码尝试过(很快就会这样做)。我当前的问题是——无论我做什么——Java 客户端从不发送证书(我可以通过PCAP转储检查这一点)。

我想知道在使用证书进行身份验证时客户端应该向服务器提供什么(特别是对于 Java - 如果这很重要的话)?这是一个JKS文件,还是PKCS#12?里面应该有什么;只是客户端证书,还是密钥?如果是这样,哪个键?对于所有不同类型的文件、证书类型等,存在相当多的混淆。

正如我之前所说的那样,我是新手,HTTPS/SSL/TLS所以我也会欣赏一些背景信息(不一定是一篇文章;我会满足于指向好文章的链接)。