不同的证书被提交到node.js的VS浏览器(Different certificate being

2019-10-19 12:26发布

当我访问https://gmail.com在浏览器中,我发出了301重定向到https://mail.google.com 。 当我尝试做同样的事情用Node.js的,我得到一个“主机名/ IP不匹配证书的altnames”的错误。

这是有道理的,因为通过gmail.com提供给node.js的证书不包含“gmail.com”的疗法共同的名字也不是一个alt-名。 这是gmail.com呈现证书...

{ subject: 
   { C: 'US',
     ST: 'California',
     L: 'Mountain View',
     O: 'Google Inc',
     CN: 'mail.google.com' },
  issuer: { C: 'US', O: 'Google Inc', CN: 'Google Internet Authority G2' },
  subjectaltname: 'DNS:mail.google.com',
  exponent: '10001',
  valid_from: 'Feb 25 15:21:00 2014 GMT',
  valid_to: 'May 26 00:00:00 2014 GMT'}

当我检查,应该由我看到服务器提供的证书http://www.sslshopper.com/ssl-checker.html#hostname=gmail.com其中是否包括了gmail.com扩展。 我想这是什么浏览器recieving。

为什么节点发送不同的证书到浏览器? 可这有什么关系CNAME记录和DNS?

Answer 1:

这可能是因为你的浏览器支持服务器名称指示 (SNI)和Node.js的(或者说,您正在使用的客户端模块)没有。 由于证书谈判发生之前HTTP可以开始,SNI需要,以服务从单一的IP地址不止一个主机名。



文章来源: Different certificate being presented to node.js vs the browser