Tag: https

与NodeJs HTTPS一起使用certificates.cer

我已经为IOS推送通知生成了一个.cer文件,我希望能够和NodeJS HTTPS模块一起使用它。 我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer: var options = { key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') }; or var options = { pfx: fs.readFileSync('server.pfx') } https.createServer(options, function (req, res) { res.writeHead(200); res.end("hello world\n"); }).listen(8000); 任何解决scheme

何时生成ssl密钥和证书 – 出于安全原因

我正在寻找生成一个privatekey.pem和certificate.pemauthentication在一个nodejs服务器。 我知道这些可以通过OpenSSL生成 ,然后保存到一个目录中,但我也发现,按需生成密钥和证书。 这个问题的答案表明,或者没问题 ,但更多的人更喜欢OpenSSL的方式。 使用pem听起来会更容易一些,但是有没有什么安全的原因,为什么我不能按照这种方式生成密钥和证书?

通过设置encryption的Nodejs WebSocket服务器的问题

我试图让一个nodejs wss服务器启动并运行。 为此,我使用Express4框架和eniaros / ws模块。 但遗憾的是,我无法启动并运行WSS-Server。 正常的WS-Server工作正常,但每次尝试连接到我的WSS时,客户端都会连接并直接断开连接。 我的证书是自签名的。 我的代码如下所示。 如果有人能帮助我,这将是非常棒的! var express = require('express'); var router = express.Router(); var app = express(); var http = require('http'); var https = require('https'); var WebSocket = require('ws').Server; var path = require('path'); var fs = require('fs'); // Routes app.use('/', require('./routes/index')); // Load config files var db_conf = require('./config/vops_db_config.json'); var […]

带有SSL的node.js服务器socket.io-client

我尝试通过socket.io来设置两个node.js服务器之间的通信。 节点服务器使用SSL,但我不明白它运行。 我没有得到任何反馈,它接近这个: Node.js socket.io-client connect_failed / connect_error事件 这是行不通的。 没有反应。 var clientio = require('socket.io-client'); console.log('Trying stuff …'); // the channel does not exist var socket = clientio.connect( 'http://localhost:4000/news' ); // I expect this event to be triggered socket.on('connect_failed', function(){ console.log('Connection Failed'); }); socket.on('connect', function(){ console.log('Connected'); }); socket.on('disconnect', function () { console.log('Disconnected'); }); 但如果我尝试: // Bind […]

NodeJS Express SSL不与Bitnami EC2实例一起使用

我正在使用Express通过NodeJS运行我的Bitnami Amazon EC2 VPC应用程序(Apache已禁用),并且无法使SSL正常工作。 我已经使用这个实现来实现SSL: https : //www.npmjs.org/package/ssl-root-cas 。 我从Symantec购买了SSL证书。 该应用程序在端口8080/8443上运行HTTP / S服务器,并将每个端口转发到80/443。 该应用程序通过nohup运行。 我在EC2的安全组中启用了入站/出站httpsstream量。 以下是示例实现: require("ssl-root-cas/latest") .inject() .addFile(__dirname + "/ssl/IntermediateCA.cer") .addFile(__dirname + "/ssl/crossRootCA.cer"); var server = { http: { port: process.env.PORT || 8080 }, https: { port: 8443, options: { key: fs.readFileSync("./ssl/server.key"), cert: fs.readFileSync("./ssl/ssl_certificate.cer") } } }; https.createServer(server.https.options, app).listen(server.https.port); http.createServer(app).listen(server.http.port); 无论出于何种原因,SSL仍然无法正常工作。 build议?

使用公共签名证书与服务器进行双向authentication,但使用私有CA的客户端

我是一个node-js的人,但我认为这只是证书/ CA。 我想使用由公共CA签名的证书来设置https服务器,以便所有浏览器都可以访问我的网站,而不会出现证书错误。 同时,我希望我的服务器提供双向httpsvalidation,以便服务器可以识别我的客户端,如果我的客户端正在使用证书。 客户端证书由我自己创build的CA签署。 当我让客户端连接到服务器,它会得到一个错误,称为Error: CERT_UNTRUSTED 。 但是我已经为服务器和客户端设置了“ca”和“agent”选项,所以我无法弄清楚我的错误。 我已经在我的Windows 8根证书上安装了自签名的CA,尽pipe我不认为它是真正需要的。 我的代码: 服务器 var options = { key:keyForCertificate, cert:certFromPublicCA, ca:[PublicCA, self-signedCA], requestCert: true, rejectUnauthorized: false }; var server = require('https').Server(options, require('express')()); server.listen(443); 客户 require('https').request({ host: "www.publicWebsite.com" , method: "GET" , port: 443 , headers: { host: "www.publicWebsite.com" } , ca:[PublicCA, self-signedCA], , path: "/" }, […]

使用node-ssl-root-cas库进行分条

我正在使用node-ssl-root-cas,因为在连接到HTTPS Web服务器时,出现了UNABLE_TO_VERIFY_LEAF_SIGNATURE错误。 使用node-ssl-root-cas库,我可以添加所需的CA证书: require('ssl-root-cas') .addFile(__dirname + '/rapidssl_1.crt') .addFile(__dirname + '/rapidssl_2.crt'); 但是,这可以防止在节点应用程序中进行条带请求。 进行条纹请求时出现以下错误。 rawType: undefined, code: undefined, param: undefined, message: 'An error occurred with our connection to Stripe', detail: { [Error: certificate not trusted] code: 'CERT_UNTRUSTED' }, raw: { message: 'An error occurred with our connection to Stripe', detail: { [Error: certificate not trusted] code: 'CERT_UNTRUSTED' […]

无法使用restify设置localhost https服务器

我试图在本地主机上运行restify https服务器,但我不断收到“0 NO RESPONSE”。 我试图按照与node,https,localhost等相关的关键字find所有的例子(所有的例子都非常相似和简单,几乎没有错)。 还检查了收听端口的应用程序,但它仍然是“0 NO RESPONSE”。 如果我删除服务器代码上的httpsconfiguration,并将请求更改为http,那么一切工作正常。 这里可能出了什么问题? 编辑:我的代码是这样的 import restify from 'restify'; … const server = restify.createServer({ key: fs.readFileSync(path.join(__dirname, '..', 'key.pem')), certificate: fs.readFileSync(path.join(__dirname, '..', 'cert.pem')) }); … server.listen(443, function()…);

节点中第二次请求延迟15秒

我有一个服务器需要发送多个http请求。 但是除第一个请求之外,每个请求都会触发一个15秒的延迟。 如果我从linux控制台,POSTman或Fiddler发送请求,它的工作很好,没有延迟,但我不能得到它从节点工作。 我已经尝试使用https.get() , request ,套接字,甚至在一个单独的文件分叉请求。 但延误还在。 服务器回复正确的Connection: close标题。 该服务器是一个nginx服务器。 从节点工作的唯一时间是如果我把我的请求在一个单独的脚本,只运行这个脚本。 这可能是有效的,因为节点在请求后退出并释放连接。 我曾尝试与agent: false ,我发送Connection: close服务器,但它为什么需要15秒钟closures,为什么不使用小提琴手或POSTMAN时发生这种情况? 编辑:添加代码。 这个代码在我第一次运行的时候运行的非常完美,但是如果我运行了两次或者更多的话,延迟就会出现。 这是导致延迟的第二个函数,第一个函数工作正常。 async.waterfall([ function(cb) { console.log('making first connection'); var post_data = querystring.stringify({ 'login' : username, 'password' : password }); var options = { hostname: 'hostname', port: 443, path: '/path', method: 'POST', agent: agent, pool: false, keepAlive: false, […]

Heroku和Soundcloud API混合内容问题

我试图部署一个testing应用程序,Heroku涉及从SoundCloud API下载曲目。 核心function在本地工作正常,但由于Heroku的ssl层,在尝试将xmlhttprequest下载到Soundcloud API时遇到混合内容错误。 我search了其他混合内容的问题,一般的回答是在请求中加上's'或者完全消除http。 我的SC API的请求URL已经是https,但看起来SC正在使用基于控制台中错误消息的redirect。 我只是坚持? 我能想到的唯一的解决方法是从服务器请求,然后pipe道响应到客户端…这将是我的应用程序的function,但似乎是一个黑客攻击。 有任何想法吗? 谢谢!