Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript XHR-绕过过期的SSL证书_Javascript_Xmlhttprequest - Fatal编程技术网

Javascript XHR-绕过过期的SSL证书

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 _

我尝试向具有过期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 _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请求中。是的,卷发可以。