Tag: https

我如何信任使用https的自签名证书?

编辑:我原本以为服务器的证书是自签名的。 原来它是由自签名的CA证书签署的。 我正在尝试编写一个Node.js应用程序来访问受保护的HTTPS站点 自签名证书 证书由一个私人的,自签名的CA证书签名。 我也想不完全禁用证书检查。 我试过了 自签名证书 服务器的请求选项中的证书,但似乎没有工作。 有人知道怎么做吗? 我期望下面的代码打印statusCode 200 ,而是打印[Error: SELF_SIGNED_CERT_IN_CHAIN] 。 我已经尝试了类似的代码与请求相同的结果。 var https = require('https'); var fs = require('fs'); var opts = { hostname: host, port: 443, path: '/', method: 'GET', ca: fs.readFileSync(serverCertificateFile, 'utf-8') }; var req = https.request(opts, function (res) { console.log('statusCode', res.statusCode); }); req.end(); req.on('error', function (err) { […]

如何使用node-http-proxy作为多个安全服务器的代理服务器

我目前有一台HTTPS Web服务器在我的主机上的端口443上侦听。 我的目标是在同一主机上设置另一个HTTPS Web服务器,更改两个Web服务器上的端口,然后使用侦听端口443上的node-http-proxy来设置代理服务器。 代理服务器然后将基于自定义逻辑的请求委托给其他端口上的服务器。 下面是代理服务器,我从一个成功地使用代理端口80上的纯HTTP请求时使用。但是,当我尝试运行此代码浏览器显示消息“安全代理服务器无法处理您的请求在这个时候。 和控制台日志'[错误:UNABLE_TO_VERIFY_LEAF_SIGNATURE]它确实使它到了试图代理服务器侦听不同端口的请求。 var sugar = require('sugar') var url = require('url') var https = require('https') var httpProxy = require('http-proxy') var fs = require('fs') //configure proxy var ssl proxy = httpProxy.createProxyServer({ ssl: { key: fs.readFileSync('/cert/server.key', 'utf-8'), cert: fs.readFileSync('/cert/mydomain.crt', 'utf-8') } }) sslproxy.on( 'error', function(err, req, res) { console.log(err) res.end('Secure Proxy Server unable […]

如何使用node.js库表单数据做一个https post?

我们有一个客户端需要通过https的post。 我们有一个node.js应用程序,并且已经使用felixge的node-form-data包( https://github.com/felixge/node-form-data )来完成提交。 虽然这些调用对客户端的testing基于http的api工作正常,但是当我们尝试调用使用https的生产api时,api响应客户端告诉我们的400响应是由于通过http进入的。 有关我们如何在我们的提交中指定https的任何想法? 我们的代码如下所示: var FormData = require('form-data'); var couponForm = new FormData(); couponForm.append('data','{"coupon":{"code":"' + couponCode + '", "discount": "' + discountPercentage + '", "type": "percent", "product": "' + productId + '", "times": "1", "expires": "' + couponExpiresDt + '"}}'); couponForm.submit({hostname:config.client_api_host, path:'/api/coupon/add', auth:auth}, function(err, res) { res.resume(); if (err) { logger.log('error', 'Client […]

P12证书“数据不足”错误

我试图使用.p12文件安全地连接到一个端点,但我不断收到以下错误。 _tls_common.js:136 c.context.loadPKCS12(pfx); ^ Error: not enough data at Error (native) at Object.createSecureContext (_tls_common.js:136:17) at Object.TLSSocket._init.ssl.onclienthello.ssl.oncertcb.exports.connect (_tls_wrap.js:1003:48) at Agent.createConnection (https.js:80:22) at Agent.createSocket (_http_agent.js:179:26) at Agent.addRequest (_http_agent.js:141:10) at new ClientRequest (_http_client.js:147:16) at Object.exports.request (http.js:31:10) at Object.exports.request (https.js:197:15) at Request.start (D:\path_to_project\node_modules\request\request.js:747:30) 生成错误的代码是这样的: request({ method: 'POST', url: config.secureEndpoint.hostname + config.secureEndpoint.path, body: XMLAPIResponse.body, rejectUnauthorized: false, strictSSL: false, agentOptions: { […]

Chrome 54无法从我的网站获得HTTPS响应; Chrome 53,Chromium,Firefox和Safari

大约一个星期前,我的网站工作正常。 自Chrome版本54以来,我无法加载它。 HTTPS请求没有得到任何回应,并显示“(取消)”的状态。 在Chromium,Firefox,Safari,甚至是Chrome 53中都可以正常加载。Chrome的开发者工具不提供任何有用的信息 – 请参阅图片。 这里是它在Chromium中的样子: (你会注意到,第二张图片显示了子域www,这是因为,当裸域加载正确,它redirect到子域。) 我尝试修改我的服务器代码(Node,Express),在收到每个请求后打印一条消息,而当我在Chrome浏览器(54.0.2840.71(64位))中访问该站点时,甚至无法打印。 当我访问Chromium时(53.0.2785.143(64位)),它会打印。 我什至尝试使用不同的电脑。 同样的事情 – 在Chrome中失败,成功在Safari。 有什么可以使它像这样? 我不知道从哪里开始解决这个问题。

Heroku,Node,Express,SSL的ERR_SSL_PROTOCOL_ERROR

我最近为我Heroku托pipe的网站wildcodemonkey.com启用了SSL,但是当我在Chrome中访问它时,看到错误“ERR_SSL_PROTOCOL_ERROR”。 我的研究表明,SSL连接终止于Heroku的路由器,然后通过HTTP将请求传递到我的express / node站点。 因此,我没有在我的服务器上设置“https”,并期待标准的HTTP连接。 我的SSLconfiguration是这样的,我的CSR,关键和证书传递给Heroku。 我正在使用Heroku中的SSL选项,而不是第三方资源/插件。 在我的应用程序的设置中启用SSL后,我更改了DNS以反映新端点(wildcodemonkey.com.herokudns.com而不是wildcodemonkey.com.herokuapp.com),这是我在Heroku上configurationSSL时要使用的端点,设置好ssl后直接从设置页面复制粘贴。 我看到摩根loggingGET请求,当我打到域,所以它看起来像所有事情都结束了,所以我不知道问题发生在哪里。 任何援助将不胜感激。 提前感谢。

在SSL上运行MEAN堆栈

我想通过https而不是http托pipe我的网站。 我使用AngularJs作为我的前端和NodeJs作为我的后端。 我将使用https://letsencrypt.org/获取SSL证书。 我无法find在https上运行这两个Web服务器的方法。 注意:我不想通过url分开前端和后端。 我希望我明确expression我的观点。 任何帮助表示赞赏?

使用节点的作用域http客户端的选项,将rejectUnauthorized设置为false

使用节点的HTTP库,我可以轻松设置我想要的选项 options = port: 443 path: "/" method: 'GET' rejectUnauthorized: false https.get options, (res) -> … 我如何做node-scoped-http-client的同样的事情? # Passing options doesn't seem to work (defined as above) cli = msg.http(stats_url, options) # Injecting it doesn't pass it on either cli.options['rejectUnauthorized'] = false 我仍然得到这个错误: ERROR Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE 我在这里错过了什么吗? 我对node和coffeescript相当陌生。

Node.js + Express.js +端口443上的Socket.io(HTTPS TLS / SSL)

我有一个Node.js,Express.js和Socket.io应用程序,使用除443之外的任何端口都可以正常运行。服务器仅用于通过HTTPS端口443运行,同样,websocket也应该被encryption。 CODE THAT WORKS var fs = require('fs'); var https = require('https'); var express = require('express'); var socket = require('socket.io'); var sslOptions = { key: fs.readFileSync(__dirname + '/../ssl/server.key, cert: fs.readFileSync(__dirname + '/../ssl/server.pem, ciphers: 'ECDHE-RSA-AES256-SHA:AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM', honorCipherOrder: true }; var app = express(); var server = https.createServer(sslOptions, app); var io = socket.listen(server, { "log level" : 3, […]

HTTPS NodeJS和Heroku。 强制HTTPS?

我有一个在Heroku上运行的NodeJS HTTP(非S)服务器。 我configuration了SSL,并接受对HTTPS的请求。 我使用香草HTTP服务器的原因是因为以下原因 : SSL termination occurs at Heroku's load balancers; they send your app plain (non-SSL) traffic, so your app should create a non-HTTPS server." 不幸的是,我的应用程序仍然响应简单的HTTP请求。 我想强制redirect或从HTTP到HTTPS的东西。 我可以用一些中间件来做到这一点: /* At the top, with other redirect methods before other routes */ app.get('*',function(req,res,next){ if(req.headers['x-forwarded-proto']!='https') res.redirect('https://mypreferreddomain.com'+req.url) else next() /* Continue to other routes if we're not […]