【问题标题】:WCF transport security, changing the certificates dynamicallyWCF 传输安全,动态更改证书
【发布时间】:2014-02-20 03:03:39
【问题描述】:

我正在使用带有 C# 的 WCF 服务。 我通过设置客户端和服务证书来使用传输安全模式。

在操作过程中,我想更改我正在使用的证书并使用由其他 CA 签名的证书。

是否可以在运行过程中更改这些证书而无需重新启动服务主机?如果有怎么办?

如果我只是调用设置证书并通过其他证书就足够了吗:

serviceHost.Credentials.ServiceCertificate.SetCertificate(...)
serviceHost.Credentials.ClientCertificate.SetCertificate(...)

有人遇到过这个问题并解决了吗?

【问题讨论】:

  • 您为什么要这样做?在任何情况下,更改其中一个或两个都最有可能导致通道故障,需要重新建立连接。那是假设您甚至可以更改它们-我对此表示怀疑,因为大多数东西都是在打开主机或客户端之前设置的并且无法更改。
  • 很遗憾,如果不重新启动 Web 服务,您将无法更改证书。我对此进行了广泛的研究。没有办法做到这一点。对不起
  • 感谢 cmets。
  • @Brian:我很抱歉。在发布我的答案之前,我没有看到您的评论。发表您的评论作为答案,以便 OP 将其标记为解决方案。

标签: c# wcf security service transport


【解决方案1】:

我已将此作为高可用性问题进行了测试。你不能这样做。服务在 ServiceHost 打开时获取其证书,并且不再获取。

如果您的目标是支持 HA,您需要将多个服务放在负载均衡器后面并一个接一个地重新启动它们。

【讨论】:

  • OP:在@Brian 有机会回答之前,请不要将其标记为已接受(他在评论中回答了我之前)。
【解决方案2】:

很遗憾,如果不重新启动 Web 服务,您将无法更改证书。我对此进行了广泛的研究。没有办法做到这一点。对不起

【讨论】:

    猜你喜欢
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2010-10-21
    • 2012-01-02
    相关资源
    最近更新 更多