當我在瀏覽器中訪問https://gmail.com時,我發送301重定向至https://mail.google.com。當我嘗試使用node.js做同樣的事情時,我得到一個「主機名/ IP與證書的altnames不匹配」的錯誤。將不同的證書呈現給node.js與瀏覽器
這很有意義,因爲gmail.com向node.js提供的證書不包含「gmail.com」作爲常見名稱,也不包含alt-name。這是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擴展。我認爲這是瀏覽器正在接收的內容。
爲什麼節點向瀏覽器發送不同的證書? 這可能與CNAME和DNS有關嗎?
看來,使用https.globalAgent.options.secureProtocol ='SSLv3_method'會改變它是否有效。 – Jonathon