Tag: ssl

ERR_SSL_PROTOCOL_ERROR – Socket.io和Node.js

我正在使用Node.js服务器并使用Socket.io来pipe理Socket的连接,但是我遇到了SSL证书的问题。 很多用户可以正常访问Node.js服务器,但是其他用户不能访问并且收到这个错误: 当我设置我的服务器时,我有这个SSL选项: var privateKey = fs.readFileSync('/root/cert/key.key', 'utf8').toString(); var certificate = fs.readFileSync('/root/cert/cert.crt', 'utf8').toString(); var ca = fs.readFileSync('/root/cert/ca.crt').toString(); var credentials = { key: privateKey, cert: certificate, ca: ca }; var app = express(); var httpsServer = https.createServer(credentials, app); var io = require('socket.io')(httpsServer); 有人知道如何解决这个错误? 问题是只有一些用户收到此错误。

自签名证书错误与NodeJS请求

我在代理服务器中使用NodeJS的请求库。 我有它正常工作,但我想要更改代理,以便而不是转发HTTP请求到HTTP地址,入站HTTP请求转发到HTTPS地址。 但是当我运行并尝试使用代理时,出现以下错误: stream.js:74 throw er; // Unhandled stream error in pipe. ^ Error: self signed certificate in certificate chain 我遵循在线说明来创build一个密钥,crt和一个假证书颁发机构(链接到代码中),但上面的错误表明它仍然不能正常工作。 我做什么显然是错的? 我的代码如下所示: var certFile = path.resolve(__dirname, 'server.CA-signed.crt'); var keyFile = path.resolve(__dirname, 'server.CA.key'); var ca = path.resolve(__dirname, 'demoCA/newcerts/1234567890.pem'); app.use(function(req, res) { var rewriter = request({ url: rewrite(req.url), qs: req.query, cert: fs.readFileSync(certFile), key: fs.readFileSync(keyFile), passphrase: 'foobar', […]

使用node.js请求让我们encryption“无法validation第一个证书”的错误

我正在使用node-slack来为自托pipemattermost使用Mattermost传入的URL Api。 这个mattermost由let-encrypt保护。 我的节点代码正在使用松散的api,并且我已经用Postman(手动发布工具)对MM服务器testing了发送数据。 在这两种情况下,它正在工作。 但是,对于节点我收到一个unable to verify the first certificate错误。 在“ https://nodejs.org/api/https.html ”中我可以看到,node.js支持一个“众所周知”的根CA集合。 为了简化这个问题,我写了这个小小的和平代码: let request = require('request'); request("https:–letsencryptsecuredsite",function(err,body){ console.log(err); console.log(body); }); 这导致 { Error: unable to verify the first certificate at Error (native) at TLSSocket.<anonymous> (_tls_wrap.js:1079:38) at emitNone (events.js:86:13) at TLSSocket.emit (events.js:185:7) at TLSSocket._finishInit (_tls_wrap.js:603:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38) code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' } 我有什么使用一个API让我们encryption安全的服务器? 我正在使用节点版本6.9.2。

Socket.IO – 服务器不会在SSL下向客户端发送响应

我和socket.io以及NodeJS碰到了一个很大的问题。 我尝试通过HTTPS下的Socket.IO与NodeJS服务器通信,但是当服务器向客户端发送响应的时候,它什么都不做。 我已经检查过,但这不是证书错误! 密钥和证书是有效的。 但是,没有HTTPS,它完美的工作。 这是我的代码: var express = require('express'), fs = require('fs'); var config = JSON.parse(fs.readFileSync(__dirname + '/config.json', 'utf8')), options = config.options || {}; var PORT = options.port, SSL_PORT = options.ssl_port; var app = express(), server = require('http').createServer(app); io = require('socket.io').listen(server); server.listen(PORT, function() { startServer(io); }); if (options.ssl_key.length && options.ssl_cert.length) { var sslOpt = […]

设置接受的CA列表并忽略chai-http的SSL错误

我正在尝试用chai / chai-http编写我的节点代码的unit testing。 一切工作正常,直到我将我的服务器切换到HTTPS服务器,但由于我的证书是由公司内部的根签名和我使用的证书的通用名称不匹配本地主机,chai是在我的请求上抛出一个错误。 我想要做以下事情: 忽略与域名validation相关的SSL错误。 设置要检查的CA列表。 如果不能这样做,我只需跳过所有的客户端证书检查即可。 我的代码如下: var chai = require('chai'); var chaiHttp = require('chai-http'); var https = require('https'); var fs = require('fs'); var server = require('../app.js'); chai.should(); chai.use(chaiHttp); https.globalAgent.options.ca = [ fs.readFileSync('./ssl/Root.cer'), ]; describe('Attachments', function () { it('should succeed when passed valid arguments', function (done) { chai.request(server) .get('/10881057300D0A4E8E8586542AA3626E41') .set('userId', 'user') .set('region', […]

错误:主机名/ IP不符合证书的名称:

我使用axios作为node.js的HTTP客户端 我在本地端口和端口8888上使用代理,所以我可以用Charles Proxy来嗅探networkingstream量以进行debugging。 axios.get(`http://example.com', { proxy: { host: '127.0.0.1', port: 8888 }) .then(result => { // }) .catch(error => { console.log(error) }) 有了这个configuration,我经常收到这个错误信息: 错误:主机名/ IP不符合证书的名称: 我在这里读到: Node.js主机名/ IP不匹配证书的altnames ,我必须像这样configurationnode.js来禁用安全检查: { rejectUnauthorized : false } 我的问题是如何以及在哪里做我的configuration?

node.js通过HTTPS获得文件套接字hangup

我想通过https从一个URL获取文件,并得到以下错误: 错误:套接字挂断 有趣的是,通过浏览器访问这个文件和curl正在工作,但不是通过node.js(请求)和wget。 我调查了这个问题,发现了以下内容: 服务器的SSL证书由DigiCert颁发,并包含一个通常不预安装的证书,即:DigiCert SHA2高保证服务器CA. DigiCert High Assurance EV Root CA中的其他证书应该没问题 该服务器还支持有限的TLS协议。 只有SSL3(这是不安全的和TLS 1.0支持) 如上所述,我可以通过curl来获取文件。 当使用wget时,只有在明确设置SSL协议并提供ca cert证书链文件(wget –secure-protocol = TLSv1 -ca-certificate =“path / to / ca-chain-file.pem” //path/to/image.jpg ) 现在我试图完成两件事情,但都失败了: 用我的操作系统注册ca-cert(本地MAC,服务器在Ubuntu上运行) 在我的节点应用程序中提供GET请求时提供这些额外的configuration: request.get({ url: location, encoding: 'base64', agentOptions: { ca: fs.readFileSync('path/to/ca-chain-file.pem'), secureProtocol: 'TLSv1_method' } }) 请帮忙

浏览器同步和代客安全

我使用浏览器同步服务我的本地开发网站。 我也使用Laravel代客。 当我使用valet secure通过https服务一个开发网站,我得到那些丑陋的Chrome隐私错误页面。 有没有办法阻止这个? 我的浏览器同步configuration如下: browserSync.init({ host: "https://mysite.dev", proxy: "https://mysite.dev", … mysite.dev从一个站点到mysite.dev站点的变化,我有很多本地开发工具我在工作。 当我运行npm start浏览器同步输出: [BS] Proxying: https://mysite.dev [BS] Access URLs: —————————————— Local: https://localhost:3000 External: https://https://mysite.dev:3000 —————————————— UI: http://localhost:3001 UI External: http://https:3001 正如你可以看到它正确映射的url,如果我忽略Chromes隐私错误警告,我可以看到网站罚款。 我只是想知道为什么HTTPS不能正常工作。 如果我访问https://mysite.dev 没有浏览器同步:3000端口,它在Chrome中工作正常,并说地址栏上的“安全”

与ssl socket.io不工作

我有一个简单的node.js代码为websocket服务器使用socket.io模块,我只是不能使它的工作。 服务器运行时没有错误,但是当试图从浏览器连接时,我得到了“SOCKET ERROR:{”isTrusted“:true}”错误(我没有使用自签名证书,而是经过testing并被浏览器信任的Symantec证书) 。 这是我的代码: var fs = require( 'fs' ) ; var app = require('express')(); var https = require('https'); var server = https.createServer({ key: fs.readFileSync('cert.key'), cert: fs.readFileSync('cert.cer'), },app); server.listen(50100); var io = require('socket.io').listen(server,{pingTimeout: 7000, pingInterval: 10000}); io.sockets.on('connection',function (socket) { console.log('new connection'); }); 在客户端,我使用标准的Java脚本“var WS = new WebSocket(wsUri);”和wsUri是“wss:// siteaddress:50100”。 我尝试了与“ws”节点模块的代码,它似乎工作正常,但“WS”模块并没有我需要的所有方法(除非我失去了一些东西 – 我需要能够发送消息到选定的套接字或所有套接字并从套接字连接的客户端发送一些信息)。 我已经尝试了所有的build议在node.js,socket.io与SSL,但没有一个为我工作。 尝试debugging通过DEBUG = […]

失眠和NodeJS:“错误:对象证书不能使用给定的CA证书进行身份validation”

我试图发送一个GET请求使用失眠应用程序到NodeJS服务器应用程序 – 我没有写应用程序,但已经join了团队。 尽pipe当我从浏览器中点击URL时,我得到了一个合理的JSON响应,但是当我遇到错误“错误:对等证书不能用给定的CA证书进行authentication”时使用失眠。 使用Mac,MacOS 10.12.4。 节点v6.3.1。 失眠的时间表说: * Preparing request to https://127.0.0.1:9999/ * Enable automatic URL encoding * Enable SSL validation * Enable cookie sending with jar of 2 cookies * Hostname in DNS cache was stale, zapped * Trying 127.0.0.1… * TCP_NODELAY set * Connected to 127.0.0.1 (127.0.0.1) port 9999 (#8) * WARNING: […]