在IIS CurrentUser / Personal Store中安装证书

时间:2016-12-23 07:07:20

标签: azure ssl iis

我们在azure上托管一些网站,在天蓝色的vm上托管一些网站。我们希望尽可能多地重用代码。在azure应用程序服务(网站)中,可以使用此代码段在CurrentUser / Personal商店中找到已安装的证书:

using (var certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
    certStore.Open(OpenFlags.ReadOnly);
    var certCollection =
        certStore.Certificates.Find(
            X509FindType.FindByThumbprint,
            thumbprint,
            false);
}

我也希望在IIS上使用完全相同的代码段。应用程序池标识设置为ApplicationPoolIdentity。我已经尝试在各个地方安装证书,但我无法检索所需的证书...我还尝试在LocalComputer / Personal商店中安装证书并授予私钥的权限

我应该在MMC管理单元中使用哪个标识?我在那里找不到ApplicationPoolIdentity用户帐户。只有一个Application Identity帐户无法解决我的问题...

2 个答案:

答案 0 :(得分:0)

暂时我正在创建一个新用户,将证书添加到用户My商店并将该用户用作应用程序池标识。不过,其他解决方案非常受欢迎!

答案 1 :(得分:0)

如果要使用本地计算机存储而不是命名用户的个人存储,则在调用O(n*2^n)构造函数时需要使用StoreLocation.LocalMachine,Enum由两个值和在上面的代码中,您正在使用另一个-X509Store。如果您使用证书的私钥,则CurrentUser用户将需要访问本地计算机存储中的相关证书,可以通过将IIS AppUser\ApplicationPoolIdentity用户添加到相关证书的私钥的允许用户中来授予此权限。密钥权限对话框。可从证书的上下文菜单中依次访问DefaultAppPoolAll Tasks

我目前不确定是否可以为Manage Private Keys用户安装证书,我目前正在尝试自己找到答案。根据{{​​3}},ApplicationPoolIdentity帐户是为整个池期创建的虚拟帐户,因此我开始得出结论,对于这种类型的帐户,可能无法使用ApplicationPoolIdentity存储用户。如果可以确定,我会回来并更新答案。