gpt4 book ai didi

c# - IIS 7.x,添加启用 HTTPS 的站点 : SiteCollection. Add(string, string, string, byte[]) 重载

转载 作者:可可西里 更新时间:2023-11-01 09:02:16 26 4
gpt4 key购买 nike

我需要以编程方式添加一个 IIS 7.x 站点,但在默认情况下应使用 HTTPS/SSL 绑定(bind)创建该站点时,我卡住了,使用 SiteCollection.Add(string, string, string, byte[]) overload .

https:*:80:test.localhost https:*:443:test.localhost 作为 bindingInformation 抛出 ArgumentException 并显示以下消息:指定的 HTTPS 绑定(bind)无效。

这个绑定(bind)信息有什么问题?

谢谢。

编辑:我正在使用 Microsoft.Web.Administration 程序集。

最佳答案

这是我创建 https 站点所做的并且它起作用了。当然,我在这里跳过了一些代码部分。

using Microsoft.Web.Administration
...
using(var manager = new ServerManager())
{
// variables are set in advance...
var site = manager.Sites.Add(siteName, siteFolder, siteConfig.Port);

var store = new X509Store(StoreName.AuthRoot, StoreLocation.LocalMachine);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite);

// certHash is my certificate's hash, byte[]
var binding = site.Bindings.Add("*:443:", certHash, store.Name);
binding.Protocol = "https";

store.Close();

site.ApplicationDefaults.EnabledProtocols = "http,https";

manager.CommitChanges();
}

UPD:证书是通过以下方式从 pfx 文件创建的:

// get certificate from the file
string pfx = Directory.GetFiles(folder, "*.pfx", SearchOption.AllDirectories).FirstOrDefault();
var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite);

var certificate = new X509Certificate2(pfx, certPassword, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet);
store.Add(certificate);
store.Close();
certHash = certificate.GetCertHash();

关于c# - IIS 7.x,添加启用 HTTPS 的站点 : SiteCollection. Add(string, string, string, byte[]) 重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128732/

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