无法在本地Azure Web角色虚拟机中添加证书



我在从我的代码管理Azure证书有一些困难。事实上,我正在尝试使用Azure REST服务API(例如创建HTTP请求),以便从我的Azure网站了解我的服务状态。

它在本地调试中工作得很好,但我的web角色似乎对证书管理器有一些限制。以下是我所做的:

// this method stores a certificate from the resources
// to the local certificates manager
private X509Certificate2 StoreCertificate(Certificates certName)
{
    X509Certificate2 newCert = null;
    // get certificate from resources
    newCert = this.GetCertificateFromResources(certName);
    // store it into the local certificate manager
    if (newCert != null)
    {
        var store = new X509Store(
               StoreName.TrustedPeople,
               StoreLocation.LocalMachine
            );
        store.Open(OpenFlags.ReadWrite);
        store.Add(newCert);
    }
    // reset ref and try to load it from manager
    newCert = null;
    newCert = this.GetCertificate(certName);
    return newCert;
}

当我尝试添加证书时,附加一个访问被拒绝错误。

你知道吗?我可以将证书存储到Azure虚拟机中吗?我应该使用一个特殊的位置来存储它们吗?

您是否使用云服务(web/worker角色)?如果有,是哪个操作系统家族?我看到过一些报告,对于使用OS家族3的工作角色,您需要以更高的权限运行该角色,以便从本地证书存储区读取证书。不确定这是否也适用于web角色和添加到证书存储。

服务证书是否也通过Azure管理门户(或通过REST API或PowerShell)添加?

我发现了很多东西:

  1. 我在一个网站上部署我的代码,所以我不能在Azure中向共享虚拟机添加证书
  2. 我试图在远程桌面会话中连接虚拟机,我手动添加了一个证书。

即使在这种情况下,我在InvalidOperationException中有一个(403)Forbidden错误。

下面是当前的状态:

  • 已创建证书(makecert)并手动添加到托管我的web角色的VM中(部署在服务中)
  • 此证书已上载到Azure帐户证书和Azure服务证书(部署我的web角色的证书)
  • 此证书的拇指指纹已添加到我的代码中,当我的代码执行时,我可以访问证书

两个问题:

  1. 我要怎么处理我的证书?
  2. 当我在Azure模拟器中本地尝试我的web角色时,一切正常。在发布/部署步骤中是否需要更新特殊设置?

谢谢你的帮助。

为了节省其他开发人员的时间,以下是我解决主要问题的方法:

  1. 连接到部署web角色的VM:参见there
  2. 创建证书:见这里
  3. 最终使用证书管理器(mmc.exe)

证书可以从代码中获得

相关内容

  • 没有找到相关文章

最新更新