我们希望为Windows Azure Cloud中的应用程序配置SSL . 根据windows azure(ref:http://msdn.microsoft.com/en-us/library/windowsazure/ff795779.aspx)中的说明,
1)我们已经从我们的域* .mydomain.com的CA(godaddy)获得了SSL通配符证书
2)CSR是从托管域的Web服务器(mydomain.com)生成的 . 此托管域指向该Web服务器 .
3)为了完成证书,我们将安全证书(.crt)上传到托管服务器,并从该服务器导出到个人信息交换(.pfx)文件 . (我确定友好名称与CN匹配) .
4)然后我们将.pfx文件上传到windows azure webrole( Cloud 服务) .
5)根据说明,我们将证书指纹添加到服务配置文件中,并设置证书名称=“MySSLCert” .
<Certificates>
<Certificate name="MySSLCert" thumbprint="1234567890" thumbprintAlgorithm="sha1" />
</Certificates>
6)然后,我们在Azure项目的服务定义文件中添加了设置的HTTPS endpoints . 喜欢,
<ServiceDefinition name="AzureSSLTest" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="SSLTestproject" vmsize="Small">
<Sites>
<Site name="Web">
<Bindings>
<!--<Binding name="Endpoint1" endpointName="Endpoint1" />-->
<Binding name="Endpoint2" endpointName="Endpoint2" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<!--<InputEndpoint name="Endpoint1" protocol="http" port="80" />-->
<InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="MySSLCert" />
</Endpoints>
<Certificates>
<Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
</Certificates>
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WebRole>
</ServiceDefinition>
发布后,当我们尝试使用Azure Cloud URL访问应用程序时,我们会收到“身份未验证”警告 . (来自Chrome浏览器)
从Firefox浏览器中,我们得到错误详细信息,
testssl.cloudapp.net使用无效的安全证书 . 该证书仅对以下名称有效:* .mydomain.com,.mydomain.com(错误代码:ssl_error_bad_cert_domain)
然后,我们创建了子域名(test.mydomain.com)并将该子域名转移到 Cloud 端URL(testssl.cloudapp.net),现在我们尝试使用托管子域名URL访问我们的应用程序,我们得到错误,
此网页不可用https://testssl.cloudapp.net/上的网页可能暂时关闭,或者可能已永久移动到新的网址 . 错误501(net :: ERR_INSECURE_RESPONSE):未知错误 .
请帮帮我,解决这个问题 .
1 回答
您需要create a DNS CNAME - 您不能将 masked forwarding 与Azure Cloud 服务和SSL一起使用 . 见MSDN for reference - 特别是第6项 .
创建 CNAME 指向
test.iclassicmdm.com
→testssl.cloudapp.net