以编程方式将证书导入 IIS?

2024-01-31

我有一个 SSL .pem 证书,我想将其与 MSI 中的 Web 应用程序一起分发(必须在客户端计算机上运行)。然后,我需要将其导入(导入到某些凭据存储中?)并告诉我的站点绑定使用它。但我怎样才能在代码中做到这一点呢?我发现了 Microsoft.Web.Administration,但不知道从那里去哪里......

顺便说一句,这是在 IIS7 中。

编辑:这里的目标是拥有一个客户可以在其内部网上运行的 Web 应用程序。它主要充当 iPhone 应用程序的 API。 (也许这不是最好的设计,但我们现在已经被锁定了。)因此,客户安装了 MSI,瞧,他们有了一个 Web 服务。现在iPhone和Web服务之间需要进行密码认证;最简单的方法似乎是在 https 中进行。所以我做了一个自签名证书。

我知道重新分发单个证书通常是一个坏主意,但我们只是想在这里击败随意的黑客……这将仅适用于企业内部网,似乎任何人都不会做任何事情太疯狂了,API 严格限制了你可以对数据库做的坏事的数量。

我们的目标是通过一键式安装在 Intranet Web 应用程序上进行密码身份验证。 :-D


亲爱的读者,答案是这样的:

// Assume 'site' is already set to your site via something like 
// Site site = mgr.Sites.Add(siteName, directory, 443);

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

// Here, directory is my install dir, and (directory)\bin\certificate.pfx is where the cert file is.
// 1234 is the password to the certfile (exported from IIS)
X509Certificate2 certificate = new X509Certificate2(directory + @"\bin\certificate.pfx", "1234");

store.Add(certificate);

var binding = site.Bindings.Add("*:443:", certificate.GetCertHash(), store.Name);
binding.Protocol = "https";
store.Close();

感谢这个随机线程:http://forums.iis.net/t/1163325.aspx http://forums.iis.net/t/1163325.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式将证书导入 IIS? 的相关文章

随机推荐