Tag: https

端口号的HTTPSurl在iOS上不可用

我在包含端口号的HTTPS URL上发送一个简单的GET请求。 该url看起来像这样 https://example.com:8080/v1/base 这完美的Android和任何浏览器..甚至curl。 但是,我在iOS上得到这个错误。 如果我从上面的URL中删除端口号,这工作得很好! 错误:错误域= NSURLErrorDomain代码= -1202“此服务器的证书无效,您可能正在连接假装为”example.com“的服务器,这可能会使您的机密信息处于危险之中。 UserInfo = 0xa694c50 {NSErrorFailingURLStringKey = https://example.com:8080/v1/base,NSLocalizedRecoverySuggestion =你想连接到服务器呢,NSErrorFailingURLKey = https://example.com:8080/api/v1/base ,NSLocalizedDescription =这个服务器的证书是无效的。 您可能正在连接到假装为“example.com”的服务器,这可能会使您的机密信息处于危险之中,NSUnderlyingError = 0xa2410a0“此服务器的证书无效。您可能正在连接到假装是“example.com”,这可能会使您的机密信息处于危险之中。“,NSURLErrorFailingURLPeerTrustErrorKey =} SSL证书由DigiCert颁发。 服务器后端是节点v0.10.15和iOS SDK v6.1 任何想法,我在这里失踪?

表示节点-http-proxy,proxy.proxyRequest到https服务器?

可以使用node-http-prox模块和proxy.proxyRequest到https服务器吗? 我试图做到以下,但似乎并没有工作。 app.get('/c/users/moreuser', function(req, res) { proxy.proxyRequest(req, res, { host: 'api.example.com', port: 80, https: true }); }); 这样做我没有得到从服务器的任何响应。 但我可以直接从服务器获得响应。

基于另一个http(s)查询的node.js(restify)服务器响应

我想使用下面的代码来设置restify node.js服务器: server.get('/querySomething', function(req, res) { var toReturn = getSomethingElse(req.params); res = toReturn; ]); … var getSomethingElse = function(params) { var somethingElse; var opts = { host: "some.host.com", path: "/x", method: "GET" } var req = https.request(opts, function(res) { res.on('data', function(someResult) { somethingElse = someResult; }); }); return somethingElse; }; 我明白“https.request”调用是asynchronous执行的。 那么我怎样才能等待调用返回,然后再回应“/ querySomethingElse”http请求呢?

通过套接字连接将https代理请求pipe道传输到命名pipe道(node.js)

我正在尝试构build一个转发代理服务器,它可以请求一个http url,并将请求传递给在已命名pipe道上侦听的https服务器。 我知道我错过了一个步骤,但我不确定它是什么。 这是我正在尝试使用… function pipeToServer(browserRequest, browserSocket, browserRequestHead){ var targetUrl = url.parse('https://' + browserRequest.url); var namedPipe = getNamedPipe() console.log("Attempting to connect to " + namedPipe) var proxySocket = net.connect(namedPipe, function() { console.log("Connected to destination server: " + namedPipe) console.log("Sending head: " + browserRequestHead) browserSocket.write('HTTP/' + browserRequest.httpVersion + ' 200 Connection Established\r\n' +'Proxy-agent: Node-Proxy\r\n' + '\r\n'); […]

不同的证书被呈现给node.js和浏览器

当我在浏览器中访问https://gmail.com时,我发送了一个301redirect到https://mail.google.com 。 当我尝试使用node.js做同样的事情时,我得到一个“主机名/ IP不匹配证书的altnames”错误。 这是有道理的,因为gmail.com向node.js提供的证书不包含“gmail.com”作为其通用名称或alt名称。 这是由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 npm模块中的请求标头

我正在尝试从本地主机访问Google API。 铬说,由于起源,这是不可能的 XMLHttpRequest cannot load https://maps.googleapis.com/maps/api…. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. 我正在使用https-browserify发出ajax请求。 options = { hostname: "maps.googleapis.com", port: 443, path: "/maps/api/….", method: "get", headers: { "Origin": null, "Referer": null } }; result = null; req = https.request(options, function(res) { res.on("data", function(chunk) { return […]

从NodeJS到Node / Express的安全POST请求挂起

我正在使用以下内容将POST数据发送到安全的nodejs服务器: 文件:main.js var strdata = JSON.stringify({"data":"thisdata"}); var options = { host: '192.168.1.63', port: 3001, path: '/saveconfig', method: 'POST', rejectUnauthorized: false, requestCert: true, agent: false, headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': Buffer.byteLength(strdata) } }; var req = https.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); […]

nodejs HTTP摘要authentication不起作用

我一直在深入堆栈溢出,但一直没能解决我的问题。 我试图访问一个使用摘要但没有成功的API,而我的同事也无法解决这个问题。 我打了一堵墙,来到Stack Overflow来问我的问题。 这是我的validation码: var https = require("https"), crypto = require('crypto'), _ = require('underscore'); var options = { host: 'api.example.com', port: 80, path: '/path/to/uri/', method: 'GET', accept: 'application/json', acceptEncoding: 'gzip, deflate', connection: 'keep-alive', rejectUnauthorized: false, requestCert: true, agent: false }; var username = 'username', password = 'httppassword'; var req = https.get(options, function(res) { res.setEncoding('utf-8'); […]

如何通过使用Node的HTTPS提供socket.io?

问题: 我只是成功地得到了我的Node.js服务器正常工作,并与SSL安装,很好。 但是我看到这个: [阻止] https://www.mywebsite.com/上的页面通过HTTPS加载,但是从http://54.xxx.xxx.77:4546 / socket.io / socket.io运行不安全的内容.js ':这个内容也应该通过HTTPS加载。 我试着把socket.io的URL改为https ,但是这当然不起作用,因为socket.io坚持提供它自己生成的文件,这个过程我不认为我能控制。 我可以更改socket.io侦听的端口,就是这样。 问题是: 那么我如何安全地服务socket.io(1.0)? 代码: var port = 4546; var io = require('/node_modules/socket.io')(port); 作为一个方面说明,我认为socket.io(它的来回通信)应该正常运行HTTPS,没有任何额外的工作; 我在某处读过 也许有人可以证实。 Web套接字的通信必须安全地传输。

无法在Express中设置HTTPS服务器

我试图设置我的express应用程序使用https 。 这是我到目前为止: var fs = require('fs'); var http = require('http'); var https = require('https'); var app = require('./app'); var port = process.env.PORT || 8080; var credentials = { key: fs.readFileSync('./ssl/private_key.pem', 'utf8'), cert: fs.readFileSync('./ssl/certificate.pem', 'utf8'), ca: [ fs.readFileSync('./ssl/certificate_chain_1.pem', 'utf8'), fs.readFileSync('./ssl/certificate_chain_2.pem', 'utf8') ] }; https.createServer(credentials, app, function (req, res) { res.writeHead(200); res.end('HTTPS server started on port […]