我向 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 文件。要解决此问题:
(本地和云).cscfg 文件
name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption"
在两个 .cscfg 文件中
<Import moduleName="RemoteAccess" />
和 <ImportmoduleName="RemoteForwarder" />
。 或者,您可以将 RDP 证书添加到 LocalMachine 存储中。