Azure虚拟机中的多个启用SSL的站点

Azure虚拟机中的多个启用SSL的站点,ssl,azure,sni,azure-virtual-machine,Ssl,Azure,Sni,Azure Virtual Machine,为了让我们的应用程序在Azure中工作,我们正在进行大量更改,这些更改即将结束,我们希望使用虚拟机,而不是部署机器的典型方式 最后,我开始列出我需要做的事情的清单,但我似乎找不到任何在同一台虚拟机上使用多个SSL的文档。我在SNI上看到过一些帖子,但在阅读了SNI之后,它不支持Windows XP。在调查了我们的用户群后,1/3的用户可以从Windows XP机器访问,这使得SNI毫无用处 如果一个VM不能支持多个SSL证书,我是否遗漏了一些东西,因为这似乎是架构中的一个重大疏忽 是否有人在Az

为了让我们的应用程序在Azure中工作,我们正在进行大量更改,这些更改即将结束,我们希望使用虚拟机,而不是部署机器的典型方式

最后,我开始列出我需要做的事情的清单,但我似乎找不到任何在同一台虚拟机上使用多个SSL的文档。我在SNI上看到过一些帖子,但在阅读了SNI之后,它不支持Windows XP。在调查了我们的用户群后,1/3的用户可以从Windows XP机器访问,这使得SNI毫无用处

如果一个VM不能支持多个SSL证书,我是否遗漏了一些东西,因为这似乎是架构中的一个重大疏忽


是否有人在Azure中工作,并且在一个VIP地址上支持多个SSL

好吧,您有以下选择:

  • 将SNI与一个IP一起使用
  • 将域设置为使用非标准SSL端口
  • 每个SSL域使用一个IP地址
  • 唯一的机会是如果您的域都是一个域的子域。那么通配符证书将是最佳选择

    顺便说一句:SNI在WinXP上只有IE不支持。其他浏览器如Firefox、Chrome、Opera都支持SNI在XP上。

    我同意Robert的观点

    我是微软的技术传道者,最近我帮助我的一个合作伙伴为云服务实施了SNI自动化解决方案(详细说明和示例“即插即用”源代码位于)

    尽管许多统计数据表明运行在Windows XP上的Internet Explorer是相关的,但实际上它可能不适合您的受众


    例如,如果你想使用SSL,因为你运行一个电子商务网站,我肯定你的观众(有信用卡并愿意在网上购物的人)可能不再使用Windows XP了。至少,我在巴西的几十个电子商务合作伙伴都是这样的…

    现在你可以在Azure VM上拥有多个公共虚拟IP,允许多个SSL,每月的成本约为3美元。请参阅和。

    不幸的是,我们是一家有许多客户的创意机构,所有领域都会有所不同。只需查看您对XP和IE的评论,这是1/3的4/5,所以仍然很高。这是一个我们不能忽视的数字。你介意详细说明第二点吗?我是否需要确保我从指定端口的HTTPS页面访问?我很失望,微软已经推出了虚拟机的功能,它们不支持某种类型的多个IP绑定。如果你想用一个IP设置多个SSL域而不使用SNI,那么每个域可以使用一个端口。但用户可以在地址栏中看到。此外,如果用户希望访问在端口8443上运行但直接输入url“”而不是“”的“domain1.example”,则用户将看到安全警告,因为在端口443上运行不同域时,DNS名称和证书不匹配。因此,这是IMHO唯一针对内部或测试服务器的解决方案。是的,我也这么认为,谢谢Robert。这真的是一个巨大的麻烦,所以我希望微软在我准备对他们的服务器进行全面部署之前伸出援手。如果我可以根据发送的头重新映射连接,那么我就可以在内部映射到不同的端口,我甚至不知道这是否可能,但我希望这就是你想要得到的。这是一个普遍的问题-没有SNI,没有发送到服务器的头文件,你就可以重定向流量。因此,唯一的解决方案是等到IE-XP使用率下降。也许你应该要求你的客户为IE-XP用户添加横幅,以表明他们的浏览器已经过时,应该被替换……查看统计数据,似乎只有几个网站受到影响。我可能需要为这些网站提供两个额外的负载平衡集群,直到它们支持多个VIP。谢谢你的意见,罗伯特,谢谢。另一方面,我希望横幅是一个选项,我认为XP和IE上的用户要么是被迫的,要么甚至不知道什么是“浏览器”。有一次,我把一个亲戚的电脑改成默认使用Chrome,他们问“互联网”到哪里去了。即使解释也无济于事,只是不得不重新启用IE。这不仅仅是XP上的IE(有些人仍在使用,在企业界有时没有选择),还有很多移动设备不支持SNI。如果您不介意将其放在云服务后面,并使用内部端口来管理不同的SSL绑定,那么这种模式就可以工作。这在IIS上可以正常工作,因为您可以自己管理安装,但是我们已经安装了cPanel,在cPanel上尝试安装不同的端口时,这是一个令人头痛的问题。此外,所有的管理都是通过Powershell完成的,因为他们目前不支持通过Azure界面实现所有这些。这不是一项需要执行的主要任务,但通过Powershell提交某些内容并希望它不会比通过接口破坏整个集群要可怕得多。