Tag: ssl

Express JS,使用HTTPS不会加载页面

我想用https启动我的Web应用程序。 我用这个命令创build了自签名密钥和证书: openssl req -newkey rsa:2048 -sha256 -nodes -keyout key.key -x509 -days 365 -out public.pem -subj "/C=US/ST=New York/L=Brooklyn/O=Example Brooklyn Company/CN=my.example.com" 这为我创buildkey.key nad public.pem文件。 现在我想把它们分配给我的快速应用程序: const app = express(); const https = require('https'); const http = require('http'); const fs = require('fs'); app.get('/*', (req, res) => { res.send("Hello"); }); const options = { key: fs.readFileSync(`${__dirname}/key.key`), // Path […]

以编程方式安全地将数据发布到https端点,不需要浏览器

如果以编程方式(不通过浏览器)向https端点发布数据,数据是否安全? 我的理解是浏览器encryption数据并将其发送到https端点。 Ruby或Node.js或其他程序如何做同样的事情?

无法将node.js中的socket.io连接到tls

我已经googlesearch和stackoverflow,任何线程相关的socket.io + tls,或node.js + tls,或ssl,等等…但我找不到任何方式build立我所需要的: 通过socket.io连接到客户端并使用tls的node.js服务器(仅需要服务器身份validation) 到目前为止,我已经连接服务器和客户端,而不使用tls。 当我创build我的node.js服务器(在端口3000监听),并使用tls我可以使用命令: openssl s_client -connect localhost:3000 和everthing似乎是好的,但去了我试图连接我的socket.io客户端我总是有一个错误。 这是我简单的服务器代码: var tls = require('tls'); var fs = require('fs'); var options = { key: fs.readFileSync('evServer-key.pem'), cert: fs.readFileSync('evServer-cert.pem'), requestCert: false, }; var server = tls.createServer(options, function(cleartextStream) { console.log('server connected', cleartextStream.authorized ? 'authorized' : 'unauthorized'); cleartextStream.write("welcome!\n"); cleartextStream.setEncoding('utf8'); cleartextStream.pipe(cleartextStream); }); io = require('socket.io').listen(server); server.listen(3000, function() […]

我怎样才能使用SSL与节点的MySQL池连接?

我通过felixge使用node-mysql来通过Node.JS进行数据库连接。 我正在build立很多连接,所以我认为使用连接池是一个好主意: var mysql = require('mysql'); function createPool() { var pool = mysql.createPool({ dateStrings : true, host : '***', user : '***', password : '***', database : '***' }); return pool; } 但是,虽然node-mysql使得SSL用于正常连接变得非常简单: var connection = mysql.createConnection({ host : 'localhost', ssl : { ca : fs.readFileSync(__dirname + '/mysql-ca.crt') } }); 在文档中似乎没有显示SSL选项在使用连接池时可用。 我怎样才能使用SSL与节点的MySQL池连接? 或者说,完全可以做到吗?

只使用socket-io和web客户端(socket io js)进行安全交换

我在debian 8虚拟机上用openssl创build了一个SSL证书。 所以我有一个包含我的密钥和证书的PEM文件。 我想知道是否有可能不使用https,express等使用SSL证书,只需使用带有套接字IO(服务器端)和套接字IO客户端(客户端)的体系结构即可。 服务器端 : var fs = require("fs") , options = { key : fs.readFileSync('./test/apache.pem'), cert : fs.readFileSync('./test/apache.pem') } var io = require('socket.io').listen(45621, options) io.sockets.on("connection", function(socket) { console.log("socket " + socket.id + " connected !") }) 客户端:(我正在使用一个简单的HTML客户端) <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script src="socket-io-1-2-1.js"></script> <script> var socket = io.connect('https://localhost:45621', {secure: true}) socket.on("connect", function() { alert("we are […]

我怎么能通过meteor的HTTP.call()节点的额外选项?

在Meteor中执行HTTP.get()调用时,出现SSL错误 , UNABLE_TO_VERIFY_LEAF_SIGNATURE 。 上面的链接指向涉及Node参数的解决scheme(例如{rejectUnauthorized: false} ),但是如何将其中的任何一个传递给Meteor还不清楚。 我试过HTTP.get(url, {rejectUnauthorized: false})没有运气。

如何下载AWS证书与NodeJS一起使用

我正在努力与AWS系统地启用HTTPS。 我通过证书pipe理器请求证书,然后让ELB和安全组侦听HTTPS和端口443。 但是我也需要在AWS实例上的服务器来侦听443端口上的https请求,对吧? 我的服务器正在运行NodeJS和Express。 从我的理解,我需要有一个证书(.crt)文件和密钥正确,但我没有find如何从AWS证书pipe理器下载它们。 有没有人遇到过这个问题? 谢谢大家!

Strongloop Heroku Postgres安装SSL错误

我是Node.js的新手,已经使用StrongLoopbuild立了一个在Heroku(free)上运行的应用程序。 我设置了heroku postgresql插件(免费层),并试图将数据源添加到StrongLoop的arc composer UI。 这个UI更新了server / datasources.json。 当我尝试连接到我的数据源时,我得到这个错误: no pg_hba.conf entry for host "XXXX", user "myUser", database "mydb", SSL off 我知道这个问题必须在postgres上设置SSL。 最接近的StrongLoop文档没有讨论这个: https ://strongloop.com/strongblog/postgresql-node-js-apis-loopback-connector/ …因为我使用StrongLoop而不是直接Node.js, Heroku的文档也让我缺乏https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js 。 我很困惑,我从这里需要做什么。 我有相当简单的newsfeedtypes的JSON数据,我用手柄操纵。 所以,如果这是免费的一级的问题,我打开其他免费的build议与我的设置。 我感谢您的帮助。 编辑datasources.json: {"db":{"name":"db","connector":"memory"}, "mydb":{ "host":"myhost", "port":####, "url":"myamazonawsurl:####/mydbname", "database":"mydbname", "password":"mypw", "name":"mydatasourcename", "ssl":true, "user":"myuser", "connector":"postgresql"}} 更多的错误信息: error: no pg_hba.conf entry for host "XXXX", user "myuser", database […]

使用椭圆曲线键创build服务器和客户机时使用节点JS TLS密码和密码选项(不共享密码套件错误)

关于这个问题 ,我试图在node.js中启动一个TLS服务器,以反映我在OpenSSL中创build的服务器。 我已经从命令行使用OpenSSLtesting了客户端和服务器,并成功build立连接。 当我尝试将服务器移植到node.js(并且仍然使用OpenSSL客户端连接到服务器)时,我收到一个“no shared cipher”错误。 我想知道是否有什么特别的我需要做tls.createServer()使用passphrase选项时, 以下是我分别为服务器和客户端成功使用的OpenSSL命令,请注意,passphrase.txt文件包含一行,即密码: $ openssl s_server -accept 8888 -cert server.cert -key server.key -pass file:passphrase.txt -CAfile ca.cert $ openssl s_client -connect 127.0.0.1:8888 -cert client.cert -key client.key -pass file:passphrase.txt -CAfile ca.cert 如果使用附加参数-cipher 'ECDHE-ECDSA-AES128-GCM-SHA256'指定客户端和/或服务器的密码,我也可以成功连接。 我正在使用openssl ecparam生成椭圆曲线键,并使用openssl ca创build的CA进行签名,正如我以前的问题所讨论的。 用node.js编写的服务器代码如下所示: var tls = require('tls'); var fs = require('fs'); var msg = '***********\n\nHello there secure client!\n\n***********'; […]

Socket.IO + Node.js + SSL

我想运行使用Node.js(0.5.11)和Socket.IO简单聊天。 我已经与纯粹的HTTP工作,但我需要启动SSL。 我已经在wiki中生成密钥和证书: http : //nodejs.org/api/tls.html#tls_tls_ssl 我使用的代码: app.js: var tls = require('tls'); var fs = require('fs'); var options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem'), }; var server = tls.createServer(options, function(cleartextStream) { console.log('server connected', cleartextStream.authorized ? 'authorized' : 'unauthorized'); cleartextStream.write("welcome!\n"); cleartextStream.setEncoding('utf8'); cleartextStream.pipe(cleartextStream); }); server.listen(8000, function() { console.log('server bound'); }); 服务器启动良好。 问题开始时,我想引用index.php上的socket.io: <script src="https://localhost:8000/socket.io/socket.io.js"></script> 萤火虫给我状态中止,我不能与“io”对象,因为它没有加载。 我也尝试“http://本地…”在src属性,但没有任何改变。 我究竟做错了什么? […]