Tag: ssl

用godaddy gd_bundle.crt运行SSL node.js服务器

我无法让我的SSL服务器使用godaddy的证书 使用Express:3.1.0 下面这个工作与一个键/ crt本地生成/不签署由爸爸(浏览器抱怨,但如果你添加exception它的作品。 var http = require('https'); var privateKey = fs.readFileSync('/var/www/dev/ssl/server.key').toString(); var certificate = fs.readFileSync('/var/www/dev/ssl/server.crt').toString(); var credentials = {key: privateKey, cert: certificate}; var https = http.createServer(credentials, app); 随着godaddy我提供了一个额外的文件gd_bundle.crt,我相信你这样实现,但是我得到一个错误 var http = require('https'); var privateKey = fs.readFileSync('/var/www/prod/ssl/mysite.key').toString(); var certificate = fs.readFileSync('/var/www/prod/ssl/mysite.com.crt').toString(); var ca = fs.readFileSync('/var/www/prod/ssl/gd_bundle.crt').toString(); var credentials = {key: privateKey, cert: certificate, ca: ca}; var […]

节点证书存储是否只读取硬编码证书列表中的节点?

在挣扎了一段时间后,有没有办法将新证书添加到证书节点信任列表中? 看来,节点将只信任存储在硬编码证书列表中的证书: https : //github.com/nodejs/node/blob/master/src/node_root_certs.h 例如,节点应用程序应该与使用自签名证书的https://foo-bar-baz.com通信,从而导致对该域的请求返回如下所示的内容: [RequestError: Error: certificate has expired] 显然这是如何在Java中解决的是将$JAVA_HOME/lib/security/cacerts证书添加到$JAVA_HOME/lib/security/cacerts 。 节点只读取提到的硬编码列表中的证书吗? 或者它也可以从一些操作系统证书存储读取? 如果只是从硬编码列表: 为什么? 可以用这种方式来实现它的原因是什么? 如果某个证书被伪造,那么只能等待下一个节点版本? 如果要添加自签名证书,不可能? (可以编辑可能的硬编码列表来添加/删除证书,但是我不会感觉更改节点源,也可以从类似的问题中得到解决scheme节点的证书存储在哪里?可以在请求时添加证书,但它不在这个问题。类似的问题是2年前发布的,从我调查的情况来看今天是一样的)

iOS HTTPS请求101

NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 非常非常令人沮丧! 我已经用这个拉了几个小时的头发。 我在我的Linode服务器上使用自签名证书。 港口是8000,不能让它在443上工作。我不认为这是理由。 这是我的代码,它是99%的样板: NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.myserver.com:8000/test.json"]]; NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES]; 在底部: #pragma mark NSURLConnectionDelegate – (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { NSLog(@"protectionSpace: %@", [protectionSpace authenticationMethod]); // We only know how to handle NTLM authentication. if([[protectionSpace authenticationMethod] isEqualToString:NSURLAuthenticationMethodNTLM]) return YES; // Explicitly […]

NodeJS UNABLE_TO_VERIFY_LEAF_SIGNATURE

我们试图使用Node.js(和Mocha)作为testing框架,通过httpstesting内部服务器的API调用。 我们正在使用以下节点模块:Mocha,Restify和应该执行这些testing。 当我们运行mocha testFileName.js时,我们得到的主要错误是: [2013-06-19 14:16:28.105] [ERROR] console – FAIL: Received error! [Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE] Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE at SecurePair.<anonymous> (tls.js:1283:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:896:10) at CleartextStream.read [as _read] (tls.js:430:15) at CleartextStream.Readable.read (_stream_readable.js:320:10) at EncryptedStream.write [as _write] (tls.js:344:25) at doWrite (_stream_writable.js:219:10) at writeOrBuffer (_stream_writable.js:209:5) at EncryptedStream.Writable.write (_stream_writable.js:180:11) at write (_stream_readable.js:573:24) at flow (_stream_readable.js:582:7) at Socket.pipeOnReadable […]

HTTPS代理服务器在node.js

我正在开发一个node.js代理服务器应用程序,我希望它支持HTTP和HTTPS(SSL)协议(作为服务器)。 我目前正在使用像这样的node-http-proxy : const httpProxy = require('http-proxy'), http = require('http'); var server = httpProxy.createServer(9000, 'localhost', function(req, res, proxy) { console.log(req.url); proxy.proxyRequest(req, res); }); http.createServer(function(req, res) { res.end('hello!'); }).listen(9000); server.listen(8000); 我设置我的浏览器在localhost:8000上使用HTTP代理,它工作。 我也想捕捉HTTPS请求(即设置浏览器使用localhost:8000作为HTTPS代理,并在我的应用程序中捕获请求)。 你能帮我吗我该怎么做? PS : 如果我订阅httpProxy服务器对象的upgrade事件,我可以得到请求,但我不知道如何转发请求并发送响应到客户端: server.on('upgrade', function(req, socket, head) { console.log(req.url); // I don't know how to forward the request and send the response to […]

服务器端的客户端证书validation,DEPTH_ZERO_SELF_SIGNED_CERT错误

我正在使用节点0.10.26,并尝试build立与客户端validation的https连接。 服务器的代码: var https = require('https'); var fs = require('fs'); process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; var options = { key: fs.readFileSync('ssl/server1.key'), cert: fs.readFileSync('ssl/server1.pem'), requestCert: true, rejectUnauthorized: false, }; var server = https.createServer(options, function (req, res) { if (req.client.authorized) { res.writeHead(200, {"Content-Type":"application/json"}); res.end('{"status":"approved"}'); console.log("Approved Client ", req.client.socket.remoteAddress); } else { console.log("res.connection.authroizationError: " + res.connection.authorizationError); res.writeHead(403, {"Content-Type":"application/json"}); res.end('{"status":"denied"}'); console.log("Denied […]

如何使用node.js请求模块使用我自己的证书进行SSL调用?

我正在使用node.js和这个请求模块进行HTTP调用到另一台服务器。 https://github.com/mikeal/request 它工作很好。 我现在需要修改这个代码,使用我公司的SSL证书通过SSL进行呼叫。 在请求模块的文档中,它提到了strictSSL选项: “strictSSL – 设置为true要求SSL证书有效注意:要使用您自己的证书颁发机构,您需要指定使用该ca创build的代理作为选项。 这听起来像我需要做的,但我不明白这个短语:“指定一个代理是与该ca创build作为一个选项”。 1)“代理人”是什么意思? 2)如何“指定代理”3)如何创build代理“使用该代理作为选项”? 一个代码示例将是惊人的,但任何线索都会有所帮助。 谢谢。

在localhost上为meteor开发设置(https)SSL

如何创build一个自签名的SSL证书在Mac 10.9的本地服务器上使用? 我需要我的本地主机作为https://localhost 我正在使用linkedin API。 这里解释了在本地主机上需要ssl的function。 https://developer.linkedin.com/documents/exchange-jsapi-tokens-rest-api-oauth-tokens 简而言之,在客户端授权我的应用程序访问他们的数据之后,linkedin会向客户端发送不记名令牌。 linkedin的内置JavaScript库会自动发送这个cookie到我的服务器/后端。 这个json文件信息被用于用户authentication。 但是,如果服务器不是https,linkedin将不会发送私人cookie。

NodeJS和SSL – “密码读取错误”

节点无法为SSL通信创build安全上下文。 具体来说,我试图让远程通知在iOS上工作。 我使用了一个叫做node-apn的模块,它引发了这个错误: Error: error:0906A068:PEM routines:PEM_do_header:bad password read at Error (native) at Object.createSecureContext (_tls_common.js:108:19) at Object.exports.connect (_tls_wrap.js:852:21) at apnSocket (/home/Slurp/node_modules/apn/lib/socket.js:56:19) at Connection.<anonymous> (/home/Slurp/node_modules/apn/lib/connection.js:188:17) at _fulfilled (/home/Slurp/node_modules/apn/node_modules/q/q.js:834:54) at self.promiseDispatch.done (/home/Slurp/node_modules/apn/node_modules/q/q.js:863:30) at Promise.promise.promiseDispatch (/home/Slurp/node_modules/apn/node_modules/q/q.js:796:13) 这似乎是一个通用的错误,但并不真正与APN有关。

带有SSL的npm http-server

我正在使用npm包“http-server”( https://www.npmjs.com/package/http-server )来build立一个简单的networking服务器,但我无法使用SSL。 我在package.json中的命令是 http-server -p 8000 -o -S 在我的根目录(现在)有一个cert.pem和key.pem。 “-o”选项将打开一个浏览器到默认页面,但页面是使用HTTP提供的,甚至不能通过HTTPS访问。 我没有得到任何错误或警告。 我也尝试添加“-C”和“-K”选项,但没有运气。 这个包有没有成功?