https在端口3000上运行的node.js服务器上

时间:2015-10-19 06:21:54

标签: node.js ssl express https

所以我有一个像http://someIp:3000这样的node.js服务器。是否可以在没有获取域名并在端口80上运行的情况下安装https?我问这个问题的原因是我有一个运行在https上的php网站,当我尝试与我的节点服务器通信时,它抱怨你请求了一个不安全的XMLHttpRequest端点。

2 个答案:

答案 0 :(得分:0)

是的:

var fs = require('fs');
var https = require('https');
var express = require('express');
var socket = require('socket.io');
var storage = require('node-persist');
var port = 8443;

var sslOptions = {
  pfx: fs.readFileSync('cert/cert.pfx'),
     passphrase: "Node2015"
};

var app = express();

app.all('/*', function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With, *');
  next();
});

var server = https.createServer(sslOptions, app);

答案 1 :(得分:0)

您应该将运行PHP的Web服务器配置为使用反向代理连接到NodeJS服务器(然后两者都可以通过相同的主机名和端口访问),或者使用正确的CORS头配置NodeJS。

我认为在您的方案中,反向代理将更容易配置。将NodeJS配置为仅允许localhost https连接,然后将Apache配置为代理请求。