Articles of ssl

Socket.IO,SSL问题与cloudflare

我有一个socket.io应用程序,基本上从前端接收信号,以杀死和启动一个新的ffmpeg进程(基于.spawn())。 一切都像预期的那样工作,但是我经常从cloudflare中得到一个525错误。 错误消息是:Cloudflare无法build立与原始服务器的SSL连接。 它的工作原理是10次中的9次。我注意到,只要kill + spawn完成,就会出现更多的这些错误。 难道是事件阻塞事件循环,并因为这阻止所有传入的请求和cloudflarelogging这些握手失败错误? 联系cloudflare支持让我回到这个信息(这是他们对我的服务器的要求): Time id host message upstream 2017-08-16T09:14:24.000Z 38f34880faf04433 xxxxxx.com:2096 peer closed connection in SSL handshake while SSL handshaking to upstream https://xxx.xxx.xxx.xxx:2096/socket.io/?EIO=3&transport=polling&t=LtgKens 我现在正在debugging一段时间,但似乎无法自己find解决scheme。 这是我如何初始化我的socketIO服务器。 /** * Start the socket server */ var startSocketIO = function() { var ssl_options = { key: fs.readFileSync(sslConfig.keyFile, 'utf8'), cert: fs.readFileSync(sslConfig.certificateFile, 'utf8') }; self.app = […]

在哪里安全地存储Node js Web服务的SSL证书

无法find这个在线的明确答案。 我在Linux Redhat企业机器上运行了一个节点js api服务。 我将ssl密钥存储在普通目录文件夹/ home / ssl / keys中(感觉不安全)。 我的同事build议我使用Java Keystore来存储密钥。 Java密钥存储和我在网上find的节点j之间没有任何关系。 有没有替代节点js安全地存储类似于java密钥库的ssl证书?什么是在生产环境中保护ssl证书的最佳做法? 简单地将密钥保存在服务器上的随机文件夹中有什么缺点? 谢谢。

节点api在几分钟后失败

我已经用express中间件安装了nodejs应用程序。 贝娄是我的代码: var express = require("express"); var app = express(); var bodyParser = require("body-parser"); var router = express.Router(); var cors = require('cors'); var fs = require('fs'); var https = require('https'); app.use(cors()); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({ limit: '50mb', "extended": false })); app.use(express.static(path.join(__dirname, './demo'))); router.get("/", function (req, res) { res.json({ "error": false, "message": "Hello World" }); }); app.use('/api', […]

使用tinyreq / cheerio有没有办法绕过网站上的证书链?

我试图刮一个网站,我正在使用npm模块tinyreq / cheerio在此博客文章中注明 我想刮的网站使用TLS我遇到下面的错误: Error: self signed certificate in certificate chain at Error (native) at TLSSocket.<anonymous> (_tls_wrap.js:1092:38) at emitNone (events.js:86:13) at TLSSocket.emit (events.js:185:7) at TLSSocket._finishInit (_tls_wrap.js:610:8) at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38) code: 'SELF_SIGNED_CERT_IN_CHAIN' 有没有办法我可以绕过这个节点? 或者我是否必须在脚本中包含实际的证书?

NodeJS上的SSL证书,并表示不工作

我有一个运行快速的NodeJs应用程序。 我一直在试图集成一个SSL证书,但我一直有相同的错误: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line 。 我已经尝试了一些解决scheme,我发现stackoverflow像 var privateKey = fs.readFileSync( 'privatekey.pem' ); var certificate = fs.readFileSync( 'certificate.pem' ); https.createServer({ key: privateKey, cert: certificate }, app).listen(port); 要么 var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = fs.readFileSync('privatekey.pem'); var certificate = fs.readFileSync('certificate.pem'); var httpServer = http.createServer(app); var httpsServer […]

SSL证书 – 禁用axios中的validation并作出反应

我试图在使用axios的应用程序中使用API​​。 该API通过使用自签名证书的HTTPS进行工作。 到目前为止,连接时出现以下错误: net::ERR_INSECURE_RESPONSE bundle.js:65253 HTTP Failure in Axios Error: Network Error at createError (bundle.js:2188) at XMLHttpRequest.handleError (bundle.js:1717) 我尝试了以下,但没有成功: import axios from 'axios'; const https = require('https'); const agent = new https.Agent({ rejectUnauthorized: false, }); const client = axios.create({ //all axios can be used, shown in axios documentation baseURL: process.env.REACT_APP_API_URL, responseType: 'json', withCredentials: true, httpsAgent: […]

2节点服务器上的证书

我有一个运行的NodeJS服务器,它通过HTTP成功地被2个域所访问。 现在这两个站点有不同的SSL证书。 我现在想要的是允许这两个站点通过HTTPS连接到节点服务器。 我已经成功添加了一个证书…我应该如何处理添加另一个,换句话说,添加2个证书到同一个节点服务器? 这是我迄今为止的代码: var options = { key: fs.readFileSync("keys/cer1.key"), cert: fs.readFileSync("certs/cer2.crt"), ca: fs.readFileSync("ca/ca.crt") }; https.createServer(options, function (req, res) { … }).listen(8000); 谢谢!

TLS – Node.js服务器到Android应用程序

我将在未来几周内开始一个新项目,但是我有一些与应用程序“devise”有关的问题。 该应用程序将是一个服务器+数据库,谈话的Android应用程序,也有它自己的数据库(离线使用)。 连接将用于交换使用自定义“协议”(游戏networking协议封装在TLS中)encryption的string。 这意味着应用程序将具有两层安全性: TLS – >针对MitM攻击 自定义协议 – >反对“游戏中的黑客”,如游戏包篡改 我的问题如下: Node.js和Android之间可以使用TLS吗? 这个问题有什么好的联系吗? (我读了一些与java和node.js中不同的证书格式的问题,它与OpenSSL和EVP_BytesToKey函数有关) – > 使用Node.jsencryption模块encryption并使用Java解密(在Android应用程序中) – > http://olabini.com/blog/tag/evp_bytestokey/ 有没有混淆Android应用程序的源代码的方式,以便自定义“协议”可以安全地解密客户端? 还是应该把所有的魔法都发生在服务器端? (我不希望解密源代码对用户可见,以剖析自定义协议并开始开发黑客)。 有关提高我的node.js服务器的安全性的一般提示或链接? (我听到一些人在谈论Nginx代理,但是由于我没有提供网页,它仍然是有意义的吗?它不会超载服务器?) 提前感谢你!

在node.js中validationphp证书

我有以下的PHP函数validation证书: <?php function raven_check_sig($data, $sig) { $key_path = '/path/to/pubkey.crt'; $key_crt = file_get_contents($key_path); $key = openssl_get_publickey($key_crt); $result = openssl_verify($data, base64_decode($sig), $key); openssl_free_key($key); if ($result == 1) { return TRUE; } else { return FALSE; } } 我正在将我的应用程序移植到node.js,但我无法实现如何实现此function。 我努力了: function checkSignature(data, sig, kid) { var keyPath = '/path/to/pubkey.crt'; var key = fs.readFileSync(keyPath); var verifier = crypto.createVerify('RSA-SHA256'); verifier.update(data); […]

Nodejs v0.10.x(freebsd)“X509_STORE_add_cert:cert已经在哈希表中”

我正在使用asynchronousWeb API,并且在nodejs版本比v0.8.9高 $ uname -a FreeBSD home 9.1-STABLE FreeBSD 9.1-STABLE#0:Fri Feb 1 10:38:27 EET 2013 root @ home:/ usr / obj / usr / src / sys / HOME amd64 $ node -v v0.10.0 $ node ./client.js events.js:72 throw er; // Unhandled 'error' event ^ Error: 34401711104:error:0B07C065:x509 certificate routines:X509_STORE_add_cert:cert already in hash table:../deps/openssl/openssl/crypto/x509/x509_lu.c:357: 34401711104:error:0B07C065:x509 certificate […]