Tag: ssl

Express SSL身份validationfunction缺失?

我试图在Express中使用SSL身份validation,如http://intown.biz/2016/11/22/node-client-auth/中所述 。 我们使用TypeScript作为我们的服务器代码(除了客户端Angular代码)以获得强大的打字效果。 我们使用Express 4.14.1,@ types / express“:”^ 4.0.36“ 上面的链接(与大多数服务器端NodeJS一样)是JavaScript而不是TypeScript。 链接中有一段代码,如下所示: app.use(function (req, res, next) { if (!req.client.authorized) { return res.status(401).send('User is not authorized'); } #examine the cert itself, and even validate based on that! var cert = req.socket.getPeerCertificate(); if (cert.subject) { console.log(cert.subject.CN); } next(); }); 链接中讨论的应用程序工作(他有一个链接下载项目)。 我的问题:最新的types(4.0.36)似乎没有req.client或req.socket.getPeerCertificate() 。 他们不可用在我的TypeScript代码(我们有Express导入/必需)。 另外,我尝试将TypeScript Request对象传递给普通的JavaScript函数,并且req.client和req.socket.getPeerCertificate()仍然是未定义的。 他们只是不在那里。 注意:我们也有Passport初始化。 我们正在使用它来validation我们的Web应用程序(客户端和内部REST […]

node.js中的SSL证书错误

我有一个木偶专家的问题。 所以我想要做的是启动一个网站和login。 但是,这个网站试图加载一个被阻塞的资源,因为它的不安全性。 运行代码后,我得到这个错误消息,代码停止运行: (node:11684) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: SSL Certificate error: ERR_CERT_COMMON_NAME_INVALID (node:11684) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 我的代码: 'use strict'; const puppeteer = require('puppeteer'); async function Login(username, password){ […]

Nodejs请求一个带有.p12证书的Web服务

所以,标题非常简单。 我想从一家公司使用Web服务,并且获得了.cer和.p12文件。 据说,在提出请求时我应该使用.p12。 我已经将.cer导入Windows,并且可以轻松地向邮递员发送请求。 但是当我试图用node.js做请求时,我得到错误。 这里是代码,我正在使用request模块: var headersOpt = { "content-type": "application/json", }; var options = { url: 'https://some-url/api', cert: fs.readFileSync(__dirname + '/certs/myCert.p12'), headers: headersOpt }; request.get(options, (error, response, body) => { console.log(error); console.log(response); console.log(body); }); 我得到这个错误: { Error: error:0906D06C:PEM routines:PEM_read_bio:no start line at Object.createSecureContext (_tls_common.js:89:17) at Object.exports.connect (_tls_wrap.js:1048:48) at Agent.createConnection (https.js:111:22) at Agent.createSocket (_http_agent.js:224:26) […]

Nodejitsu + HTTPS

当我去https://myapp.nodejitsu.com我奇迹般地启用ssl。 但我的应用程序的websocket运输似乎已经被破坏了。 我需要做什么来启用这个https的websocket,还有什么可以打破? 他们在做什么来启用SSL?

如何validation连接实际上是TLS安全的?

我在Node.js中创build了一个TLS服务器和一个合适的TLS客户端。 显然他们都是一起工作,但我想validation一下。 基本上,我想到的东西,如检查连接,或手动连接到服务器,并检查它发送什么,或类似的东西… 服务器的相关代码是: var tlsOptions = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('server.pem') }; tls.createServer(tlsOptions, function (tlsConnection) { var d = dnode({ // […] }); tlsConnection.pipe(d).pipe(tlsConnection); }).listen(3000); 适当的客户端代码是: var d = dnode(); d.on('remote', function (remote) { // […] }); var tlsConnection = tls.connect({ host: '192.168.178.31', port: 3000 }); tlsConnection.pipe(d).pipe(tlsConnection); 我怎么能这样做?

Express 3.0 HTTPS

我有一个Node.js Express 3.0应用程序,它在本地监听端口3000,在线监听80端口,这很好。 现在我需要做的是引入一个SSL证书。 我已经在网上查看了很多来源,但是它们都是过时的,或者只在端口443上工作,或者什么也不是。 然而,我需要做的是听取443和80,然后把任何要求重新定向到80到443。 他们是否有任何最新的例子?

NodeJS + Express + Socket.IO + SSL

所以我试图用Express + Socket.IO来使用NodeJS。 我已经看了大约5个其他堆栈溢出问题,并查看了文档,以我的眼睛觉得他们要stream血的地步! 我已经得到了以下工作: var fs = require('fs'), privateKey = fs.readFileSync('/path/to/private.key').toString(), certificate = fs.readFileSync('/path/to/certificate.crt').toString(); var options = { key: privateKey, cert: certificate }; var express = require('express'), app = express(express.logger()), https = require('https'), server = https.createServer(options, app), io = require('socket.io').listen(server), routes = require('./routes'); app.configure(function() { app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(express.bodyParser()); app.use(express.methodOverride()); […]

在自定义端口上设置快速/节点SSL

有没有办法在Express上设置SSL的自定义端口? 这仅用于开发目的。 我在80/443上有一个Apache / PHP项目。 我试着按照这个教程http://www.hacksparrow.com/express-js-https.html 但老实说,我无法得到这个工作。 如果有人可以发布正确的方式来configurationExpress来做到这一点,那将是非常棒的。 这是我的服务器configuration: var hskey = fs.readFileSync('mywebsite-key.pem'); var hscert = fs.readFileSync('mywebsite-cert.pem') var options = { key: hskey, cert: hscert }; //Create server var app = express(options); // Configure server app.configure(function () { //parses request body and populates request.body app.use(express.bodyParser()); //checks request.body for HTTP method overrides app.use(express.methodOverride()); //perform route lookup […]

运行https不是443,这怎么可能?

如果我在443以外的任何其他端口上打我的域名,我会得到下面的错误。 那么如何在不同的端口上使用nodejs https? 安全连接失败连接mysite:8080期间发生错误。 SSL收到的logging超出了允许的最大长度。 (错误代码:ssl_error_rx_record_too_long) 例如,在文档中给出的示例中,他们使用端口8000。 // curl -k https://localhost:8000/ var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') }; https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(8000); 使用CentOS 6。

在Heroku上强制Node.js应用程序的HTTPS

我在部署到Heroku的node.js应用程序中强制使用SSL。 我想在所有场景中强制使用HTTPS。 我也使用Express。 我已经遵循这个职位上的代码: Heroku的NodeJS HTTP到HTTPS强制redirect (从arcseldon的答案)。 我正在使用Chrome进行testing。 这里是我的testing场景:如果我去www.mywebsite.com,它redirect到https://www.mywebsite.com – >这是工作正如我所料。 现在我在https://www.mywebsite.com 。 如果我在Chrome浏览器中访问url,并将“https”编辑为“http”,则会进入。 它只是通过http进行连接(我login了Chrome开发者工具)。 这是我的代码片段,以防我做错了事情。 var forceSsl = function (req, res, next) { if ( req.headers['x-forwarded-proto'] != 'https'){ console.log( 'forceSSL req.get = ' + req.get('Host') + ' req.url = ' + req.url ); return res.redirect('https://' + req.get('Host') + req.url ); } else { console.log( […]