Javascript XHR-绕过过期的SSL证书
我尝试向具有过期SSL证书的域发出普通XHR请求。我得到以下回应:Javascript XHR-绕过过期的SSL证书,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我尝试向具有过期SSL证书的域发出普通XHR请求。我得到以下回应: Error: CERT_HAS_EXPIRED at SecurePair.<anonymous> (tls.js:1349:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:962:10) at CleartextStream.read [as _
Error: CERT_HAS_EXPIRED
at SecurePair.<anonymous> (tls.js:1349:32)
at SecurePair.EventEmitter.emit (events.js:92:17)
at SecurePair.maybeInitFinished (tls.js:962:10)
at CleartextStream.read [as _read] (tls.js:463:15)
at CleartextStream.Readable.read (_stream_readable.js:320:10)
at EncryptedStream.write [as _write] (tls.js:366:25)
at doWrite (_stream_writable.js:219:10)
at writeOrBuffer (_stream_writable.js:209:5)
at EncryptedStream.Writable.write (_stream_writable.js:180:11)
at write (_stream_readable.js:573:24)
错误:证书已过期
在安全对。(tls.js:1349:32)
位于SecurePair.EventEmitter.emit(events.js:92:17)
在SecurePair.maybeInitFinished(tls.js:962:10)
在CleartextStream.read[as_read](tls.js:463:15)
在CleartextStream.Readable.read(_stream_Readable.js:320:10)
在EncryptedStream.write[as_write](tls.js:366:25)
在doWrite(_stream_writable.js:219:10)
在writeOrBuffer(_stream_writeable.js:209:5)
在EncryptedStream.Writable.write(_stream_Writable.js:180:11)
写入时(_stream_readable.js:573:24)
这是有道理的。当您浏览到具有无效证书的站点时也是如此。但是,在浏览器上,您可以说:
我不在乎,继续!
如何使用XHR请求实现这一点
我花了相当多的时间在互联网上寻找解决方案,我能找到的唯一反应似乎是人们避免回答,说这是不安全的,不应该
- 我知道我正在连接的站点应该有一个更新的证书。它不是。虽然这对所有完美主义者来说都是令人心碎的,但我仍然需要联系
- 是的,我确信它是安全的
- 我会和那些还没有更新证书的人谈谈。不过,它不是固定的,我需要连接
有人知道如何解决这个问题吗?因此,您可以通过子进程生成的
curl
或wget
代理您的请求。您可以使用--unsecure
或--no check certificate
选项来避免过期证书出错。有npm模块可以帮助使用或通过节点
虽然我认为一旦你意识到这是一个多么丑陋的黑客行为,你就会有足够的动机让网站管理员更新他们的证书。打开另一个窗口,点击“我不在乎,继续”按钮,然后再次尝试你的XHR。不幸的是,我是从Node.js发出请求的,所以我不能这样做。我没有在我的问题中包括这一部分,因为它并不真正相关,而且会吓跑50%以上可能对此问题有答案的人。你可能想把问题贴上这样的标签。哦,让我告诉你。。。nice hat btw:)curl能够发送cookies和HTTP谓词吗?另一个漂亮的问题是,就在这个请求之前,我必须手动将身份验证cookies注入到我的xhr请求中。是的,卷发可以。