有没有办法让多个ssl证书指向服务定义中的单个inputendpoint?例如,假设我有两个网址。
service.foo.net/Service.svc
service.doo.net/Service.svc
我希望这两个地址都能解析为我的windows azure服务,但我不知道如何在服务定义中配置它。
<Certificates>
<Certificate name="service.foo.net" storeLocation="LocalMachine" storeName="My" />
<Certificate name="service.doo.net" storeLocation="LocalMachine" storeName="My" />
</Certificates>
<Endpoints>
<InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="service.foo.net" />
</Endpoints>
根据这篇MSDN文章,每个输入端点必须具有唯一的端口。有没有办法为此端点指定多个证书?
答案 0 :(得分:8)
不幸的是,这是不可能的。 Azure正在重新暴露SSL限制。 SSL限制很有趣,也是您无法通过SSL使用v-hosts的原因。让我们来看一个例子:
由于服务器需要在之前提供证书,您告诉它要与之通信的主机名,如果存在多个证书,服务器无法知道要使用哪个证书,因此您只能有一个证书。
答案 1 :(得分:5)
“Oliver Bock”的回答可能对您有用,而且“Igor Dvorkin”的答案已经无效了,因为带有Windows Server 2012的IIS 8支持SNI,这使您能够在HTTPS绑定中添加“hostheader”并拥有多个SSL证书到不同的域,侦听同一个HTTPS端口。
您需要自动执行在计算机上安装证书的过程,并将HTTPS绑定添加到IIS。
我是微软技术推广人员,我在以下网址发布了详细解释和示例“即插即用”源代码: http://www.vic.ms/microsoft/windows-azure/multiples-ssl-certificates-on-windows-azure-cloud-services/
答案 2 :(得分:4)
This post表示您需要一个“多域证书”,它似乎是一个可以在Igor的答案的第5步中匹配多个DNS名称的证书。我没有尝试过,但推测这个证书可能是uploaded to Azure in the usual way。