gpt4 book ai didi

c# - 设置服务器名称指示 (SNI) 取消证书绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 21:57:45 25 4
gpt4 key购买 nike

我正在使用 Microsoft.Web.Administration(在 Wix CustomAction 中)配置服务器名称指示并绑定(bind)到 IIS 8.5 站点上的现有服务器证书。

事实证明,设置 SNI 取消了证书绑定(bind)。下面的代码会让事情更清楚:

using Microsoft.Web.Administration;

var binding = site.Bindings.FirstOrDefault(x => x.IsIPPortHostBinding && x.Host == sitename);

binding.CertificateHash = certificate.GetCertHash();
binding.CertificateStoreName = store.Name;

// this statement is causing the certificate info to get messed up.
binding["sslFlags"] = 1; // or binding.SetAttributeValue("sslFlags", 1);

结果:

binding["sslFlags"] = 1; enter image description here

没有 binding["sslFlags"] = 1; enter image description here

这是一个错误还是我遗漏了什么?如何让 SNI 和证书绑定(bind)保持一致?

最佳答案

似乎 Microsoft.Web.Administration v7.0 是这里的罪魁祸首。这是 NuGet gallery 上的官方版本,它似乎主要用于 IIS 7(我的意思是它适用于 IIS 7 和 8 中常见的功能,但 7 没有的任何功能都会产生如上所述的奇怪结果) .

使用 IIS.Microsoft.Web.Adminstration (这似乎是 IIS 8.5 的社区上传包)有效。从这个 answer 得到提示.

更新后的代码:

binding.CertificateHash = certificate.GetCertHash();
binding.CertificateStoreName = store.Name;

binding.SslFlags = SslFlags.Sni; // <<< notice it has helpful enums

关于c# - 设置服务器名称指示 (SNI) 取消证书绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com