Asp.net core 如何在.NET Core HTTP.sys上使用Cloudflare验证源代码

Asp.net core 如何在.NET Core HTTP.sys上使用Cloudflare验证源代码,asp.net-core,cloudflare,client-certificates,httpsys,Asp.net Core,Cloudflare,Client Certificates,Httpsys,我必须在我的http.sys.NET核心应用程序上启用经过身份验证的Origin Pull,但我非常困惑 到目前为止,我执行的步骤是: 在受信任的根目录上安装origin-pull-ca.pem netsh http add sslcert hostnameport=xxxxxxxxxx.com:443 appid='{APPLICATION-IDENTIFIER}'certhash=THUMBPRINT-CERTIFICATE certstorename=MY clientcertnegoti

我必须在我的http.sys.NET核心应用程序上启用经过身份验证的Origin Pull,但我非常困惑

到目前为止,我执行的步骤是:

  • 在受信任的根目录上安装origin-pull-ca.pem
  • netsh http add sslcert hostnameport=xxxxxxxxxx.com:443 appid='{APPLICATION-IDENTIFIER}'certhash=THUMBPRINT-CERTIFICATE certstorename=MY clientcertnegotiation=enable(其中THUMBPRINT-CERTIFICATE是Cloudflare的“原始证书”,而不是Origin-pull-ca.pem)
  • 但是。。现在

    这是使其工作的NGINX配置

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;
    

    将其应用于ASP.NET Core上的web服务器HTTP.sys的错误是什么?

    您是否实现过此功能?是的,我找到的唯一方法是构建一个自定义中间件,并将context.Connection.ClientCertificate.Thumbprint与origin-pull.cloudflare.NET的Thumbprint进行比较,如果相同,则调用是合法的,否则,您可以返回403。确保传入的指纹,在我的例子中,它与origin-pull.cloudflare.net不同,看一看hey@Sauron,如果你偶然发现了解决方案,你能提供一些线索吗?因为我计划在linux中使用kestrel服务器,而不是直接使用pem,我们可以将pem转换为x509格式,并尝试验证,但我无法成功完成。如果你对此有任何想法,请提供你的答案上面的线程。嗨@JB,这里是你要找的。希望它能对您有所帮助:)我试过了,但不确定为什么我以前在中获取空证书时无法验证,结果验证了cloudflare调用