我向 WebRole 添加了一个 HTTPS 端点,现在当我尝试运行 Azure 模拟器时收到以下警告,这会导致计算模拟器停止并且调试器退出:
Warning: The SSL certificate 'Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption' for endpoint 'HttpsIn' of role 'MyProj.Web' was not found in the local machine's certificate store.
此证书与 HTTPS 端点无关。它也不(也不应该)在本地机器的证书存储中——它确实存在于 CurrentUser 证书存储中(我已经检查过)。我试图在我的 ServiceConfiguration 中完全摆脱对这个证书的引用,只是为了看看会发生什么,但它会自动重新添加。

任何帮助,将不胜感激。

编辑:

需要明确的是,我并没有尝试使用 Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption 证书作为我的 SSL 证书。我已经在本地机器存储中为 HTTPS 端点成功设置了一个单独的自签名证书:

ServiceDefinition.csdef

    <Bindings>
      <Binding name="Endpoint1" endpointName="Endpoint1" />
      <Binding name="HttpsIn" endpointName="HttpsIn" />
    </Bindings>
    ...
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="AzureSSL" />
    </Endpoints>
    ...
    <Certificates>
      <Certificate name="AzureSSL" storeLocation="LocalMachine" storeName="My"/>
    </Certificates>

ServiceConfiguration.Local.cscfg
<Certificates>
  <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="xxxxxxxxxx" thumbprintAlgorithm="sha1" />
  <Certificate name="AzureSSL" thumbprint="xxxxxxxxxx" thumbprintAlgorithm="sha1" />
</Certificates>

最佳答案

WebRole 正在添加 RemoteAccess 证书设置并在 LocalMachine 中查找证书,因为 SDK 1.8 将 <Import moduleName="RemoteAccess" /> 添加到 csdef 文件。要解决此问题:

  • 删除所有“Microsoft.WindowsAzure.Plugins.RemoteAccess.*”
    (本地和云).cscfg 文件
  • 删除“证书
    name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
    在两个 .cscfg 文件中
  • 从 csdef 文件中删除 <Import moduleName="RemoteAccess" /><ImportmoduleName="RemoteForwarder" />
  • 保存并重新编译。如果您稍后需要激活远程桌面,则过程在 this article 中描述。

  • 或者,您可以将 RDP 证书添加到 LocalMachine 存储中。

    10-06 13:09