Service Fabric 证书交换。应用程序无法激活

Posted

技术标签:

【中文标题】Service Fabric 证书交换。应用程序无法激活【英文标题】:Service Fabric certificate swap. Apps failing to activate 【发布时间】:2019-07-31 03:44:29 【问题描述】:

我们有 5 个 Service Fabric 节点,在 Azure 的 4 个环境中运行 2 个应用程序。我们的网络团队想要切换我们的集群证书,因此他们生成了一个新证书(我相信密钥保管库)并将其交换到主证书。我们更新了项目以使用新证书的指纹。我们成功地通过了集群的身份验证并使用新证书进行了部署(通过 Visual Studio),但现在应用程序不会激活。我们看到的错误是:

System.Hosting 报告属性“激活:1.0:1.0:131965678558388988”的错误。 激活过程中出错。已经有一个带有指纹 123oldCertNumber 的证书绑定到端口 200appPort。指定的新证书指纹:321newCertNumber

此外,我们尝试删除现在位于辅助插槽中的旧证书,但它只会处理几个小时,说“集群正在更新用户证书”。并最终无法删除证书。

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

这对我有用:

我删除了所有应用程序,但没有取消配置它们。然后我重置所有节点以清除它们。然后我删除了旧证书 - 这次它起作用了。我重新部署和中提琴,它激活没有问题。好吧,几乎,我有一个节点卡住了相同的错误消息。我已尝试删除数据并重置它,但仍无法清除它。

【讨论】:

【参考方案2】:

如果您的两个应用程序都使用旧证书,那么您可能遇到了描述 Upgrading multiple applications with HTTPS endpoints 的文档中描述的问题。

当第一个应用程序进行更新时,它将无法使用新证书配置 HTTPS 端口,因为第二个应用程序仍在运行并且已经使用旧证书配置了 HTTPS 端口。前进的唯一途径是删除共享端口的两个应用程序,然后升级。

因此,您可能需要考虑采取一些方法来防止将来出现此问题。你可以:

将两个应用程序中的服务合并到一个应用程序中,或者 在不同的端口上运行每个应用程序。

【讨论】:

【参考方案3】:

我刚刚升级了我的应用程序以使用新证书,这是您必须做的。 我有 3 个应用程序使用一个证书。

说明 在应用程序清单中,我删除了绑定

来自我的 3 个应用程序中的 2 个。请务必不要一次从所有应用中删除绑定。

然后我重新部署了这 2 个应用程序并删除了绑定。

我用新证书更新了第三个应用程序并重新部署

然后我在其他 2 个应用程序中添加回绑定并更新它们以使用新证书并重新部署。

这就是我们所需要的。

这里是解决方案的链接

Renew endpoint certificate

【讨论】:

以上是关于Service Fabric 证书交换。应用程序无法激活的主要内容,如果未能解决你的问题,请参考以下文章

Service Fabric 多个 SSL 安全 WebAPI 和证书翻转

fabric 2.3系统通道

如何为 Service Fabric 配置 Let's Encrypt 证书?

在 Service Fabric 无状态服务中配置默认​​异常处理程序

单个节点上的 Service Fabric 无状态服务部署

SignalR 与 Service Fabric 无状态 Web API