2013-04-24 148 views
2

我在管理我的代码中的Azure证书时遇到了一些困难。 事实上,我试图使用Azure REST Services API(例如创建HTTP请求)来从我的Azure网站了解我的服务状态。无法在本地Azure Web角色中添加证书VM

它在本地调试中运行良好,但我的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; 
} 

当我尝试添加证书时,Access被拒绝错误附加。

有什么想法?我可以将证书存储到Azure VM吗? 我应该使用特殊位置来存储这些吗?

回答

1

您是否正在使用云服务(网络/辅助角色)?如果是这样,哪个OS家族?我见过一些报告显示,使用OS系列3的工作者角色,您需要使用提升的权限运行角色,以便从本地证书商店读取证书。不知道是否也适用于Web角色并添加到证书存储区。

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

+0

关于_“提升的权限”_这点是我需要的 - 谢谢。你提到你已经看到一些关于需要提升的权限的报告 - 你有没有提及这个? – 2014-06-07 16:49:52

1

嗯,我发现很多东西:

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

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

因此,这里的当前状态:

  • 证书已创建(makecert),并在承载
  • 这个证书已经上传了我的Web角色(部署在服务)的VM手动添加到Azure帐户证书和Azure服务证书(部署我的Web角色的证书)
  • 此证书的指纹已添加到我的代码中,我可以在执行代码时访问证书

所以2个问题:

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

感谢您的帮助。

1

为了节省其他开发人员的时间,这里是我做过什么要解决的主要问题:

  1. 连接到虚拟机可部署的Web角色:see there
  2. 创建证书:see there
  3. 最终与证书管理器(MMC.EXE)

然后该证书可以从代码播放。

+0

谢谢。我有这个完全相同的问题,并一直在挣扎了很长一段时间,直到我找到这篇文章。 – Doug 2013-07-29 21:30:37

相关问题