Tag: https

Node.js – HTTPS PFX错误:无法加载BIO

我试图做一个HTTPS请求承诺。 我已经知道PFX是好的,这不是问题(我有一个类似的示例应用程序工作)。 我正在做以下事情: var request = require('request-promise'); … options.pfx = fs.readFileSync('myfile.pfx'); options.passphrase = 'passphrase'; 我正在将我的选项传递给请求。 request.post(options); 然后我尝试构build请求我得到以下错误: _tls_common.js:130 c.context.loadPKCS12(pfx, passphrase); ^ Error: Unable to load BIO at Error (native) at Object.createSecureContext (_tls_common.js:130:17) at Object.exports.connect (_tls_wrap.js:955:21) at Agent.createConnection (https.js:73:22) at Agent.createSocket (_http_agent.js:174:16) at Agent.addRequest (_http_agent.js:143:23) at new ClientRequest (_http_client.js:133:16) at Object.exports.request (http.js:31:10) at Object.exports.request (https.js:163:15) at […]

我在我的node.js https服务器中使用.pfxauthentication,我不能在选项中使用“密码”

我目前正在使用node.js和https进行Web应用程序。 所以我尝试使用我的.pfx(我从http://www.cert-depot.com/获得了这个文件)进行httpsauthentication,如下所示: var https = require('https'); var fs = require('fs'); var options = { pfx: fs.readFileSync('./8ab20f7b-51b9-4c09-a2e0-1918bb9fb37f.pfx') passphrase: 'password' }; var server = https.createServer(options, function (request, response) { fs.readFile('index.html', function (error, data) { response.writeHead(200, {'Content-Type': 'text/html'}); response.end(data); }); }).listen(12345, function(){ console.log('server running'); }); 但是当我用node.js启动这个代码时,我在我的Windows控制台中收到一条错误消息: 密码:“密码” 意外的标识符 我的代码与Node.js( http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener )的官方指南页非常相似,但是我无法启动我的https服务器。 我的密码有什么问题? (我在Windows 8 64位上运行node.js。)

在Openshift上使用https创buildExpress JS 4.0应用程序,包括httpredirect

继另一个SO问题后 ,我一直在尝试的最新(见ligatures.net ): self.ipaddress = process.env.OPENSHIFT_NODEJS_IP; self.port = process.env.OPENSHIFT_NODEJS_PORT || 443; if (typeof self.ipaddress === "undefined") { self.ipaddress = "127.0.0.1"; }; … self.app = express(); // 4.8.7 … // Trusting Openshift proxy self.app.enable('trust proxy'); // Http -> Https redirection middleware self.app.use(function (req, res, next) { if ( !req.secure() ) { var tmp = 'https://' + […]

Node.js https请求错误

我已经从文档中尝试过这个示例,并且效果很好。 但是,当我将URL更改为https://api.mercadolibre.com/sites/ ,请求会挂起。 我唯一得到的是: { [Error: socket hang up] code: 'ECONNRESET' } 这是我的代码: var https = require('https'); this.dispatch = function(req, res) { var renderHtml = function(content) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end(content, 'utf-8'); } var parts = req.url.split('/'); var options = { host: 'api.mercadolibre.com', port: 443, path: '/sites/', method: 'GET' }; var request = https.request(options, function(res) […]

我的node.js https客户端总是工作,不pipe证书的有效性

该testing程序连接到https服务器并获取一些内容。 我在浏览器中检查了我的服务器并使用了curl,证书正常工作。 如果我运行curl从服务器获取数据,它会正确地抱怨证书未知,除非我使用–cacert传入或使用-kclosures安全性。 所以我现在面临的问题是,尽pipe我认为我的客户应该做证书authentication,而且我正在告诉它公共证书在哪里,它总是有效的。 如果我删除ca:选项,所以它不知道服务器的证书是什么,那么它默默地工作。 我想赶上authentication错误,但我似乎无法这样做。 var https = require('https'); var fs = require('fs'); function main() { var data = ''; var get = https.get({ path: '/', host: 'localhost', port: 8000, agent: false, ca: [ fs.readFileSync('https_simple/cacert.pem') ] }, function(x) { x.setEncoding('utf8'); x.on('data', function(c) {data += c}); x.on('error', function(e) { throw e; }); x.on('end', function() { […]

Node.js https服务器:无法侦听端口443 – 为什么?

我在Node中第一次创build了一个HTTPS服务器,代码(见下文)适用于像6643这样的随机端口,但是在端口443上不起作用。 我得到这个错误: [Debug][Server]: Initialized… [Debug][Control Center]: Application initialized… events.js:72 throw er; // Unhandled 'error' event ^ Error: listen EACCES at errnoException (net.js:904:11) at Server._listen2 (net.js:1023:19) at listen (net.js:1064:10) at Server.listen (net.js:1138:5) at Object.module.exports.router (/home/ec2-user/Officeball/Versions/officeball_v0.0.5/server/custom_modules/server.js:52:5) at Object.<anonymous> (/home/ec2-user/Officeball/Versions/officeball_v0.0.5/server/control_center.js:15:59) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) 这是在Amazon Linux EC2服务器上。 这是我的理解是,一旦我将我的域的DNS名称logging设置为服务器的IP,当用户searchhttps://mydomain.com时 ,浏览器将在端口443查找我的服务器的IP,这应该是HTTPS的标准端口交通。 所以我的理解是,我需要通过端口443提供https内容。 […]

节点服务器的响应时间出现意外延迟

问题陈述- 我们在互联网客户端和下游服务之间使用路由器。 路由器(服务)是用Node.js编写的 其责任是将networking客户端的请求传递给相应的下游服务,并将响应返回给networking客户端。 我们在路由器级面临一些延迟。 用于http-proxy- https://github.com/nodejitsu/node-http-proxy 节点 – http代理示例 – 用样例解释。 我们在99%的情况下面临着问题 – 我们做了100次并发的加载/性能testing。 根据结果​​,直到95百分位,对互联网客户的响应时间看起来很棒。 但是,在百分之九十九的情况下,下游服务在预期时间(〜250ms)内响应。 但路由器比预期的时间多了10倍(〜2500毫秒)。 服务信息 – 路由器和下游服务都在同一个区域,同一个子网。 所以,这个延迟不是因为networking。 这种延迟的可能性 – 某些线程在节点服务级别被阻塞。 这就是为什么,不能听下游服务响应。 花更多的时间在DNS查找。 节点级别线程数量less,这就是为什么不能监听来自下游服务端的所有传入响应。 为了分析这一点, 我们在configuration下面查了下来 – keepAlive,maxSockets,maxFreeSockets,keepAliveMsecs,日志级别。 PLease检查http / https代理的节点configuration – http代理configuration 节点服务的代码片段 – var httpProxy = require('http-proxy'); var http = require('http'); var https = require('https'); var agent = new […]

使用https与express io

所以我是新来expression和io,但我有一个服务器运行良好的webRTC,但现在有一个不推荐的方法在webRTC只运行在https上,所以我试图创build一个https服务器,但它启动,然后立即退出。 我无法弄清楚什么是错的,我没有得到任何的错误。 另外我使用aws ec2来运行express服务器。 也许有人可以发现我的语法/执行方式我错了。 请注意,我在过去的半个小时内一直在search,无法弄清楚 这里是代码: var connect = require('connect'); var https = require('https'); var fs = require('fs'); var express = require('express.io'); var app = express(); //app.http().io(); var PORT = 443; var options = { key: fs.readFileSync('../server.key'), cert: fs.readFileSync('../server.crt') }; app.https(options).io(); //var app = https.createServer(options, app1); console.log('server started on port ' + PORT); app.use(express.static(__dirname […]

在相同的curl请求成功的情况下,nodejs https#请求失败

我正在尝试连接到twitter API的公共stream端点。 当我运行示例参数我从twitter api的testing工具在nodejs我得到401 unauthorized错误下面你可以看到我的nodejs示例请求 'use strict'; const https = require('https'); const qs = require('querystring'); const obj = { method: "POST", headers: { Authorization: 'OAuth oauth_consumer_key="pXZ8xSWvjZjE4UaNntVsCwWPg", oauth_nonce="776f1a4ec0c3ed9ecbfb68aa0f7e2324", oauth_signature="jk8e84V0OcgcepkL7F%2BXt2fAy8o%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1463258508", oauth_token="416282416-vFTMVJCFiRW8G6nwoFhH3OBqrJsKDbIJ93sbOm2a", oauth_version="1.0"' }, hostname: "stream.twitter.com", path: "/1.1/statuses/filter.json" } https.request(obj,res => { res.on("data", d => { console.log(d.toString()); }); }).end(qs.stringify({track:"javascript"})) 但是,如果我发送这个请求curl它完美的作品在这里是我的例子curl请求 curl –request 'POST' 'https://stream.twitter.com/1.1/statuses/filter.json' –data 'track=javascript' […]

Node.js HTTP2服务器错误:套接字挂断

鉴于具有实验性HTTP2支持的最新版本的Node.js: $ node -v v9.2.0 一个HTTP2服务器: var options = { key: getKey(), cert: getCert(), allowHTTP1: true } var server = http2.createSecureServer(options) server.on('stream', onstream) server.on('error', onerror) server.on('connect', onconnect) server.on('socketError', onsocketerror) server.on('frameError', onframeerror) server.on('remoteSettings', onremotesettings) server.listen(8443) function onconnect() { console.log('connect') } function onremotesettings(settings) { console.log('remote settings', settings) } function onframeerror(error) { console.log('frame error', error) } function onsocketerror(error) […]