繁体   English   中英

在 Service Fabric 应用程序中禁用 TLS 握手客户端证书请求

[英]Disable TLS Handshake Client Certificate Request in Service Fabric Application

我正在 Azure Service Fabric 中创建一个 Web 服务,并在 .net Core 2.0 上的 Docker 容器上运行。 该服务旨在由无法为相互 TLS 身份验证握手提供客户端证书的客户端调用,但是,我的服务正在提示输入此证书,这导致客户端重置连接而未获得响应从服务。

在我的设置代码中,我正在运行这个 netsh 命令来将 SSL 证书绑定到端口 443:

netsh.exe http add sslcert ipport=0.0.0.0:443 certhash=E362F4AB1FC4227F3010952876B505D510B0F6AA appid={8e6ea06d-b92f-4d99-911a-3c68de243eb4} verifyclientcertrevocation=enable clientcertnegotiation=disable'

这成功完成并建立了绑定,但是当客户端调用服务时(或者当我尝试从浏览器或 Fiddler/Postman 调用时)我仍然收到对客户端证书的请求。 从查看文档来看,“clientcertnegotiation”参数是此处的相关部分,据我所知,应该禁用它以删除客户端证书提示。

当客户端通过 Fiddler 使用重定向进行调用时,他们能够成功调用服务而无需重置连接。

我不确定 SF 集群端是否有错误配置,所以我也查看了那里的配置。 我发现一个名为“ProtectionLevel”的安全属性被设置为“EncryptAndSign”。 搜索有关此的一些信息,我在 Microsoft 的文档中找到了此页面: Understanding Protection Level

我不确定我是否正确解析了该页面上的信息,但我认为它可能相关,所以我在开发环境中进行了测试,看看如果我将“ProtectionLevel”设置为“None”是否会得到提示”,但仍然提示我输入证书。

我也在使用 CORS,尽管我怀疑这与双向 TLS 配置有什么关系,并且无论是否启用 CORS,我都会得到相同的行为。

是否有任何其他 Service Fabric 或应用程序级设置会覆盖我的 SSL 绑定配置? Service Fabric 是否通过另一个将请求客户端证书的服务进行路由?

我建议“verifyclientcertrevocation= enable ”可能导致它要求证书,而不管“clientcertnegotiation= disable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM