根据客户端能力指定 SHA-1 或 SHA-2 证书

根据客户端能力指定 SHA-1 或 SHA-2 证书

使用 SHA1 证书已被主流浏览器弃用获得 SHA2 签名证书似乎是明智之举。但这样做会将 IE6 用户拒之门外。虽然对于大多数人来说这不是问题,但在某些情况下可能会将重要用户拒之门外。

看看SSL 握手客户端发送其支持内容的详细信息。

因此,理论上服务器可以发送客户端支持的证书。较新的浏览器将获得 SHA2 签名的证书,而较旧的浏览器将获得 SHA1 签名的证书。

但是,似乎没有任何方法可以通过 nginx 配置来实现这一点。虽然您可以设置密码和协议的版本,但您无法使用任何逻辑来确定如何应对不同的客户端配置。

有没有办法根据客户端支持的内容来提供不同的证书?

答案1

目前,nginx 还无法实现这一点(但 apache 可以)。不过,CloudFlare 等公司似乎已经实现了对 nginx 的内部修改,并有望将其工作开源(https://news.ycombinator.com/item?id=8276770),因此我希望/期望一年后 nginx 能够具备这种能力,随着 2016 年的临近,这种需求将变得更加迫切。

与此同时,我刚刚购买了一份有效期为 1 年的证书,将于 2015 年底到期,因此在推出这样的功能之前,我不会受到 Chrome 警告的困扰。

相关内容