Azure / Wasabi:证书永远不会进入CurrentUser / My商店

时间:2013-02-12 21:26:13

标签: azure certificate autoscaling wasabi

我试图让Wasabi(企业库自动扩展块)在Azure辅助角色中工作。 Wasabi工作者角色(超小,完全信任)正在同一服务中扩展不同的工作角色。它可以从本地控制台应用程序完美地运行,具有相同的配置 - 鉴于错误,证书不会进入VM。我使用的是最新版本的Azure SDK,企业库自动调节模块和Azure门户。

以下是我采取的步骤,基于以下文档:http://msdn.microsoft.com/en-us/library/hh680937(v=pandp.50).aspx

  1. 我根据此处的说明创建了管理证书:http://msdn.microsoft.com/en-us/library/gg432987.aspx
  2. 我使用私钥导出.pfx并为其提供了密码。
  3. 我将.cer上传到门户网站上的“设置 - >管理证书”部分。
  4. 我使用正确的密码将.pfx上传到Cloud Services->(我的服务) - >证书,并注明列出的指纹。
  5. 我创建了一些简单的规则,可以扩展我的应用程序的几个实例,并正确配置服务信息以使用我的新证书。 XML文件位于blob存储中。这个完全配置在我的本地计算机上可以在控制台应用程序中正常工作。
  6. 我使用正确的证书名称和指纹在Wasabi角色的配置中添加了一个条目。我将其设置为使用CurrentUser \ My商店。我确认.csdef和.cscfg文件已正确更新。
  7. 我使用发布工具将服务部署到Azure上。证书配置设置正确显示在角色的配置设置中。
  8. 它不会缩放应用。我检查了跟踪条目,并且在尝试提取访问管理API时有一个例外。它正在尝试访问正确的订阅,并且它正在尝试在正确的商店中找到正确的证书指纹,因此我的配置正在正确加载。它声称它无法在该商店中找到带有该指纹的证书。
  9. 我尝试了LocalMachine \ My store(在角色证书设置和服务信息存储XML中配置),我得到了Azure WASABi SecurityNegotiationException中列出的错误的异常。这个修复最终要转到CurrentUser,所以这对我没有帮助。

    我尝试了很多其他CurrentUser \ LocalMachine和不同商店的组合,所有CurrentUser位置都会导致找不到证书,所有LocalMachine存储都会导致另一个例外。

    我在角色设置,门户网站(证书页面)和服务信息文件中对指纹进行了三重检查,它们都匹配。

    然后我启用了远程桌面并登录到Wasabi角色实例,并使用MMC查看本地计算机和当前用户的证书配置。当我在角色证书设置中选择LocalMachine商店时,证书确实显示在LocalMachine商店中,该商店告诉我证书已在服务中正确安装且指纹匹配。选择CurrentUser存储时,证书在任何地方都不可见。这可能是因为RDP使用的用户与服务不是同一用户,但它确实与错误匹配。

    所以,总结一下:

    1. 证书已正确配置并安装在门户中(订阅和服务证书的管理证书)。
    2. 显然,您必须使用CurrentUser位置而不是LocalMachine位置作为Wasabi角色(根据链接的SO问题)。
    3. 当我尝试安装到CurrentUser时,证书不会放在VM中,至少不会放在角色可以找到的任何位置。
    4. 有什么想法吗?

      谢谢!

1 个答案:

答案 0 :(得分:3)

请参阅我对此SO POST的回答。证书必须位于LocalMachine中,并且由于SDK 1.8和Server2012角色初始化中的配置更改,您必须运行具有提升权限的辅助角色,以授予NETWORK SERVICE访问证书私钥的权限。编辑ServiceDefinition.csdef

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="blah" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WorkerRole name="blah" vmsize="Small">
    <Runtime executionContext="elevated" />
    ...      
   </WorkerRole>
</ServiceDefinition>