首页 文章

适用于多个SSL证书的Azure Cloud Service配置

提问于
浏览
4

我创建了一个MVC3项目,并附加了一个Azure Cloud Service,用于部署到Azure Web角色 . 我为PRODUCTION和TEST创建了两个.cscfg文件 . 这两个服务具有不同的SSL证书和不同的指纹 - 这些证书在相应的.cscfg文件中设置 . 在我的角色中,我设置了一个https endpoints ,并为SSL证书名称选择了正确的配置设置 .

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

错误:证书:带有指纹的'SSLCert':用于角色:XXXXX尚未上传到 Cloud 服务:XXXXX

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

3 回答

  • 2

    我想说这是Windows Azure SDK的一个已知问题,目前正在进行中 . 我没有关于修复程序可用性的任何具体细节,也无法对此进行评论 .

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

    http://blogs.msdn.com/b/philliphoff/archive/2012/07/02/transform-windows-azure-service-model-files-during-packaging.aspx

    转换配置文件后,您仍然可以使用相同的构建/发布步骤,而不需要手动发布 .

  • 2

    我刚刚使用Igorek对my question here的回答实现了这一点 . 没有msbuild转换那么强大,但更容易实现 .

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

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

  • 0

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

    当我想使用 生产环境 证书发布到 生产环境 时,我发布了在配置文件中具有适当设置的 Cloud 项目 . QA也是如此 . 我甚至为本地开发测试制作了一个单独的 Cloud 项目 . Cloud 项目很容易制作,您只需将实际的Webrole项目与每个 Cloud 项目相关联,您就可以开展业务 .

相关问题