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

0 投票
1 回答
134 浏览

c# - 为什么 HttpWebRequest.ClientCertificates 是一个集合

我很想知道为什么HttpWebRequest.ClientCertificates是集合?

据我所知,在客户端身份验证中只能使用一个客户端证书(这仅仅是真的吗?)。

一个应用程序的示例使用多个客户端证书,好吗?

0 投票
2 回答
2549 浏览

api - K8S(1.9)如何使用客户端证书访问API服务器

问题

如何使用客户端证书访问 API 服务器 API?在下面尝试但没有成功。

根据X509 客户端证书(身份验证策略

通过将 --client-ca-file=SOMEFILE 选项传递给 API 服务器来启用客户端证书身份验证。

在 /etc/kubernetes/manifests/kube-apiserver.yaml 中,指定了--client-ca-file=/etc/kubernetes/pki/ca.crt

0 投票
0 回答
1595 浏览

node.js - Google Cloud Functions 可以使用 HTTPS 客户端身份验证吗?

我可以将 HTTPS 客户端证书身份验证与 HTTPS 触发的Google Cloud Functions一起使用吗?

我是独立的node.js,我会尝试这样事情:

但由于谷歌云功能(大概)控制node.js服务器的创建,我目前不清楚如何传递所需的选项。

Google 提供有关如何使用 (OAuth 2.0) 服务帐户和访问令牌进行身份验证的文档,但我对 HTTPS 客户端证书感兴趣,例如也可以提供 Web 浏览器。

0 投票
0 回答
1341 浏览

ssl - Spring Cloud Gateway 转发客户端证书

我正在尝试将 spring-cloud-gateway 用于基于 spring-boot 的服务,该服务使用 ssl 和 client-auth。

问题是,通过 api-gateway 从客户端调用服务总是以“certificate_unknown”失败(没有网关也可以正常工作)。

似乎 spring-cloud-gateway 没有将客户端证书转发到后端服务。

任何想法如何实现这一目标?这是缺少的功能吗?

谢谢

0 投票
0 回答
902 浏览

authentication - 客户端身份验证中应需要密钥用法和扩展密钥用法证书扩展值

任何人都知道在客户端身份验证中,我们应该验证的密钥使用和扩展密钥使用目的是什么?

根据 [1] 中的规范:

  • “扩展密钥使用”不是必需的,它被配置为补充或代替密钥使用扩展中指示的基本目的。
  • 可以配置为“扩展密钥使用”的“clientAuth”,以及可能与之一致的密钥使用位是“digitalSignature”和/或“keyAgreement”

但是在验证时,应该允许和禁止客户端身份验证的密钥使用目的是什么?

[1] https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.12

0 投票
1 回答
8403 浏览

ssl - 我什么时候需要将“协商客户端证书”设置为启用?

我可以选择支持客户端证书。这就是我设置Client certificatesAcceptIIS 上的原因。这适用于大多数机器。但是,在某些机器上,IIS 返回 500。这可以通过设置Client certificatesIgnore(这不是我的选择)或设置Negotiate Client CertificateEnabled(这可以通过netsh http add ...或更改DefaultFlags为 2 in来完成HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\SslBindingInfo\0.0.0.0:443\;这也可以在 IIS 管理器中更改?)。虽然(启用)此设置听起来很合理,但仅从名称来看,我不明白为什么在某些机器上需要它,而在其他机器上不需要它......

0 投票
0 回答
130 浏览

c# - WCF 客户端证书

WCF 服务配置为客户端证书X509CertificateValidationMode.Custom和自定义X509CertificateValidator.

绑定是WebHttpBindingWebHttpSecurityMode.TransportHttpClientCredentialType.Certificate

此设置强制客户端提供附加到请求的证书,并且它与具有证书的请求一起正常工作。

现在,我需要处理没有附加证书的请求,并让它们根据其他一些条件进行处理。但正如我所指出的,它403在点击我的 custom 之前会做出响应X509CertificateValidator

如何在没有证书的情况下挂钩 WCF 请求?

0 投票
1 回答
2269 浏览

apache - Apache 客户端身份验证 OCSP 响应程序问题

我在 Windows 上设置 Apache 2.4.29 以使用有效的 OCSP 响应程序进行客户端身份验证时遇到问题。关闭 OCSP 响应程序时,客户端身份验证工作正常。当我手动使用 OpenSSL 向 OCSP 响应程序发出请求时,我还能够验证我的客户端证书状态是否为“良好”。这只是在 Apache 中使用它时的一个问题......

证书颁发机构(我充当自己的 CA):

  • 根 CA > 中间 CA

  • 中间 CA > 客户端证书 1

  • 中间 CA > OCSP 签名证书

证书文件

  • ca-chain.cert.pem(根 CA 和中间 CA 证书)

  • middle.cert.pem(中间 CA 证书)

  • ocsp.mydomain.com.cert.pem(OCSP 签名证书)

  • client1.cert.pem(客户端证书)

Windows 安装程序

  • 根 CA 和中间 CA 证书连同其私钥(导入为 .pfx)分别导入“受信任的根证书颁发机构”和“中间证书颁发机构”存储中
  • 客户端证书连同其私钥(导入为 .pfx)一起导入“个人”证书存储

OCSP 响应服务器

手动 OCSP 请求(只是为了确认所有设置都在 Apache 之外)

  • 要求

    /li>
  • 响应(...代表一些排除的详细输出,实际上不在响应中)

    /li>
  • 上面的“颁发者密钥哈希”与我的“个人”证书存储中的客户端证书“授权密钥标识符”匹配,看起来都不错

阿帕奇设置

阿帕奇错误

库错误:OCSP_basic_verify:root ca 不受信任(下面的日志信息)

Apache 命中时的 OCSP 响应程序服务器错误响应

  • 响应(...代表一些排除的详细输出,实际上不在响应中)

    /li>
  • 上面的“颁发者密钥哈希”与我的“受信任的根证书颁发机构”证书存储中的根 CA证书“授权密钥标识符”匹配,WTF?为什么?

任何人都可以看到我所做的事情有什么问题,或者知道为什么这不起作用吗?

0 投票
0 回答
2415 浏览

spring - RestTemplate HTTS & 选择客户端证书

有人可以帮助我了解如何使用 HTTPS 相互身份验证,以便我可以在身份验证期间以编程方式选择要使用的客户端证书吗?

这是问题的上下文。我在用:

  • 包含多个客户端证书的 JKS
  • Apache SSLContextBuilder 创建 SslContext
  • Apache HttpClients 创建 CloseableHttpClient
  • Spring HttpComponentsClientHttpRequestFactory 创建 RestTemplate

我采用的方法类似于具有不同用户证书 Spring Boot SSL Client的 Java Rest 调用。在这两个示例中,我都看不到 KeyStore 中的特定别名是在哪里指定的。

如何让应用程序使用每个连接的不同客户端证书启动多个相互 HTTPS 连接?

0 投票
1 回答
479 浏览

scala - 为什么我的服务器没有在 Play 2.6.x 中请求客户端证书?

我正在尝试按照play-tls-example启用客户端身份验证。由于这只是一个实验,我正在生成自签名证书。

我有以下 SSL 引擎提供程序:

并且clientca.jks是根据以下脚本配置的:

localhost.jks的由以下脚本生成:

当我使用以下相关配置在生产中运行时:

当我发出不安全的 curl: 时,我发现我的服务器没有请求客户端证书curl -k https://localhost:9443

尽管我的服务器需要客户端身份验证,但从不提示客户端输入证书并成功启动不安全的连接。为什么会这样?