Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个SSL证书的Azure云服务配置_Azure_Ssl_Azure Cloud Services - Fatal编程技术网

多个SSL证书的Azure云服务配置

多个SSL证书的Azure云服务配置,azure,ssl,azure-cloud-services,Azure,Ssl,Azure Cloud Services,我创建了一个MVC3项目,并将Azure云服务附加到Azure Web角色以进行部署。我为生产和测试创建了两个.cscfg文件。这两个服务具有具有不同指纹的不同SSL证书,这些指纹在相应的.cscfg文件中设置。在我的角色中,我设置了https端点,并为SSL证书名称选择了正确的配置设置 问题在于,除非所有.cscfg文件都包含完全相同的SSL指纹,否则Visual Studio不会发布到Azure上的web角色。如果我在.cscfg文件(用于生产和测试)中对证书有不同的指纹,它会拒绝发布,说:

我创建了一个MVC3项目,并将Azure云服务附加到Azure Web角色以进行部署。我为生产和测试创建了两个.cscfg文件。这两个服务具有具有不同指纹的不同SSL证书,这些指纹在相应的.cscfg文件中设置。在我的角色中,我设置了https端点,并为SSL证书名称选择了正确的配置设置

问题在于,除非所有.cscfg文件都包含完全相同的SSL指纹,否则Visual Studio不会发布到Azure上的web角色。如果我在.cscfg文件(用于生产和测试)中对证书有不同的指纹,它会拒绝发布,说:

错误:角色XXXXX的带有指纹的证书:“SSLCert”尚未上载到云服务XXXXX


如何设置配置以允许单独的SSL证书?

我想说,这是Windows Azure SDK的一个已知问题,目前正在研究中。我没有关于修复可用性的任何具体细节,也不能就此发表评论

如上所述,您已经有了一些手动发布包的解决方法,但是如果您仍然希望在工具集中解决问题,您可以在构建步骤中转换CSDEF/CSCFG配置文件,如下所述:


转换配置文件后,仍然可以使用相同的生成/发布步骤,并且不需要手动发布

我刚刚用Igorek的答案实现了这个。不像msbuild转换那样强大,但更易于实现

解决方案是创建对应于每个服务配置的.csdef文件。然后,在Azure项目的预构建步骤中,将正确的.csdef文件复制到主.csdef文件上。这些自定义的.csdef文件可以添加到您的解决方案中,但您必须使用文本编辑器手动添加


每个特定于配置的.csdef文件中都包含我的测试和生产SSL证书,但端点定义已设置为在配置中使用正确的定义。这是必需的,因为Visual Studio会抱怨.csdef文件中缺少.cscfg文件中引用的证书。这意味着您必须将SSL证书上载到Azure门户上的测试和生产服务,但在部署完成后将使用正确的证书。

我使用的简单解决方案是在我的解决方案中创建两个单独的云项目。我把它们放在一个名为“手动部署”的文件夹中


当我想使用生产证书发布到生产环境时,我会发布在配置文件中具有正确设置的云项目。同样适用于QA。我甚至为本地开发人员测试做了一个单独的云项目。云项目很容易制作,您只需将实际的webrole项目与每个云项目相关联,就可以投入业务。

此项目是使用SDK 1.6创建的吗?我也有类似的问题,当我将项目从1.6升级到1.7时,问题就消失了。你也可以尝试创建一个包,而不是直接发布。是的,我只是尝试通过管理门户打包和上传。那很好用。它的发布不尊重多个配置。谢谢你的提示。这并不方便,但至少我可以将配置分开。在这种情况下,您有两个选择:1。使用门户而不是Visual Studio进行部署。2.请不要使用不同的证书。如果你认为它是一个bug,你也可以报告它。看起来这是Azure SDK中的一个bug。感谢大家提供的所有解决方法,但是由于包部署工作正常,我现在只会坚持使用这个方法,直到他们解决问题。我没有考虑过这种方法。谢谢你的提醒。我会试试看。