我在我的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>
答案 0 :(得分:8)
WebRole正在添加RemoteAccess证书设置并在LocalMachine中查找证书,因为SDK 1.8将<Import moduleName="RemoteAccess" />
添加到csdef文件中。要解决此问题:
<Import moduleName="RemoteAccess" />
和<Import
moduleName="RemoteForwarder" />
。或者,您可以将RDP证书添加到LocalMachine商店。
答案 1 :(得分:1)
嗯,有两件事:
后者并不坏,但你应该知道你的所有证书以及哪一个用于什么。
首先,在Azure角色实例上启用远程桌面需要X.509证书。它通过在配置文件(csdef)中指示证书的指纹来配置。这是必需的,因为RDP帐户的密码是使用该证书加密的。密码加密是打包过程的一部分(或者更准确地说是远程桌面向导过程)。你必须separately upload that certificate to the Windows Azure Cloud Service部署你的包。并且在本地用户的商店中也有该证书。
第二个证书适用于HTTPS。它也被描述为指纹和位置。但是,HTTPS证书通常位于local machine
商店,而不是current user
商店。此X.509证书必须再次单独上载到Cloud Service,并且必须存在于此处。您可以阅读here on how to configure HTTPS endpoint for Windows Azure Cloud Service。为了使打包工作正常,HTTPS端点证书需要位于本地计算机存储(或更准确地说是Web Hosting存储 - 如果打开IIS管理器并导航到Server Certificates
,您必须能够看到证书那里)。这是HTTPS证书的预期位置,这就是包装要求它存在的原因。这就是为什么它抱怨它无法找到它。因为您的密码加密证书(您表示也用于HTTPS)不在本地计算机的商店中。
最后但并非最不重要的是,程序包使用的证书是在您的云服务项目的properties
的“证书”部分中配置的。
建议读物:
答案 2 :(得分:1)
非常简单:在Visual Studio中,转到“配置远程桌面”,单击“查看证书”,然后单击“证书路径”以查看友好证书名称。在窗口启动类型“certmgr.msc”并选择certmgr,打开个人/证书并找到“来自Visual Studio的证书,突出显示并右键单击并复制。转到受信任的根证书认证和证书并粘贴。瞧,警告已经去
答案 3 :(得分:-1)
我通过在 Windows 10 as w.brian mentioned in a comment 上安装 IIS 解决了这个问题:
<块引用>我实际上已经从另一个 SO 问题中解决了这个问题。显然,在您安装完整的 IIS 之前,IIS Express 不能很好地与 Azure SSL 端点配合使用。您甚至不需要使用完整的 IIS,只需安装它。