ssl客户端如何接受过期的SSL证书

时间:2016-04-25 19:38:34

标签: java c sockets ssl client-server

我这里有一个独特的问题 - 服务器在我们的控制之下,并且已经使用即将过期的新服务器证书进行了更新。

但是我们客户的本质是更新SSL证书需要手动干预来设置某些方面,以便它们在此之后启动并运行。在证书过期之前,我们没有足够的时间进行更改并让所有客户端都运行。

我们正在使用单向SSL,即只有客户端正在验证服务器证书(TCP通信)。

所以我的问题是 - 有没有办法迫使客户在失效日期之后接受证书,以便我们有更多时间来更新它们?我们可以同时对服务器进行任何更改,但不能触及客户端。

我今天运行了wireshark跟踪,将系统日期设置为客户端和服务器上的证书到期时间,其中客户端抛出certificate_expired我相信在这种情况下,因为服务器已经安装了新的服务器端证书。 通信的外观甚至没有得到SSL / TLS消息,即它在此之前就失败了。

客户端用C语言编写,使用OpenSSL建立SSL连接,服务器用Java编写。

我曾尝试使用所有类型的TrustManagers来接受服务器端的所有内容,但问题是它似乎是客户端。传输的信息不敏感,如果有任何方法可以这样做,我们可以禁用所有SSL功能以使其正常工作,但无论我们做什么都必须在不触及客户端的情况下完成。

如果需要进一步的详细信息,请告诉我更清楚的情况。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你没有这么说,但听起来你正在使用"自签名"证书,并且您担心绕过网络并将服务器的证书添加到每台计算机上的证书库中。假设这是场景 - 你有一个非常简单的解决方案......只需切换到商业证书。 Comodo一直在进行交易,通常可以在100美元以下获得一年。他们甚至提供30天免费试用。 https://ssl.comodo.com/