【发布时间】:2014-11-18 04:35:50
【问题描述】:
我有一个用于生产站点的 azure web 角色项目,它有一个 ssl 证书,我们称之为https://www.myapp.com。我对发布它没有任何问题,它按预期工作。
但是,出于测试目的,我们启动了另一个不需要 ssl 的站点。它在默认的 Azure 站点名称 http://myapp-test.cloudapp.net 上运行。自从我为生产配置添加了证书后,测试发布就拒绝运行,说明证书没有添加到目标 Azure 部署中。这是有道理的,我还没有将证书添加到测试站点。但是,尝试删除证书的测试配置会引发另一个错误,因为 csdef 文件已经定义了一个证书并且在测试配置中没有提供一个会阻止发布。
如何设置一个有证书的配置和一个没有证书的配置?
以下是我的生产配置,已删除敏感数据。
<Role name="MyApp">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="" />
<Setting name="DataConnectionString" value="" />
<Setting name="ServiceBusConnectionString" value="" />
<Setting name="ENVIRONMENT" value="production" />
</ConfigurationSettings>
<Certificates>
<Certificate name="MyAppSSL" thumbprint="thumbprint value" thumbprintAlgorithm="" />
</Certificates>
以及测试配置:
<Role name="MyApp">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="data" />
<Setting name="DataConnectionString" value="data" />
<Setting name="ServiceBusConnectionString" value="" />
<Setting name="ENVIRONMENT" value="staging" />
</ConfigurationSettings>
<!-- removing the certificate config prevents the publish from happening, but including it also prevents the publish since I don't have the cert on the test site-->
【问题讨论】:
-
也许我在你的问题描述中遗漏了一些东西,但你为什么不能从 CSDEF 中删除证书引用?
-
如果我这样做,我就没有对生产部署证书的引用,并且该站点将不会使用 SSL 运行。
-
在这种情况下,为什么不将证书添加到您的测试站点,无论您是否真的要使用它?或者创建一个您上传到测试站点的虚拟自签名证书,然后使用该虚拟证书指纹更新 CSCFG。
-
@kwill 我最终会使用虚拟自签名证书。如果您可以添加您的评论作为答案,我会将其标记为解决方案。
-
添加为答案,谢谢。