Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在NodeJS中安装SSL(没有发送任何数据,错误为空)_Php_Node.js_Ssl_Xampp - Fatal编程技术网

Php 在NodeJS中安装SSL(没有发送任何数据,错误为空)

Php 在NodeJS中安装SSL(没有发送任何数据,错误为空),php,node.js,ssl,xampp,Php,Node.js,Ssl,Xampp,我已下载了从app.zerosssl.com收到的SSL证书,并将其放置在与主节点脚本相同的目录中;并使用此代码安装它 var fs = require('fs'); let options = { cert: fs.readFileSync(__dirname + '/certificate.crt'), ca: fs.readFileSync(__dirname + '/ca_bundle.crt'), key: fs.readFileSync(__dirname + '/priva

我已下载了从app.zerosssl.com收到的SSL证书,并将其放置在与主节点脚本相同的目录中;并使用此代码安装它

var fs = require('fs');

let options = {
 cert: fs.readFileSync(__dirname + '/certificate.crt'),
 ca: fs.readFileSync(__dirname + '/ca_bundle.crt'),
 key: fs.readFileSync(__dirname + '/private.key')
};
我运行服务器的配置如下所示:

var express = require('express');
var app = express();
var server = require('https').createServer(options, app);
var io = require('socket.io')(server);
现在我在XAMPP上运行MYSQL和PHP,端口设置为1337。在调制解调器中,我已将DMZ设置为计算机/服务器的内部IP地址。当我试图通过互联网访问我的域名时,它会出现一个错误。(没有发送任何数据,ERR_EMPTY_响应)来自我的节点JS服务器

现在,当我使用地址栏访问我的网站的https版本时,它会出现一个警告,然后重定向到我的XAMPP服务器。该端口未在地址栏上设置,因此我不确定它为什么会重定向到XAMPP服务器


我想知道为什么我的SSL不起作用,为什么当我使用https时,它会重定向到我的XAMPP服务器而不是使用NodeJS服务器?

既然您运行两台服务器和一个公共入口点,那么您需要使用类似nginx的东西才能从外部IP访问这两个服务器

XAMPP可能优先于express服务器,这就是为什么它要去那里

注意:如果您正在处理HTTPS,请确保添加路由器规则以利用端口443

下面是一些关于如何在一台服务器中托管两台服务器的文档。在本例中,它是两个网站,但您可以更改它,使其适用于一个网站和一个后端服务器,因为这是专门用于路由到不同端口的

注意:您可以跳过服务器名称,只需在每个配置中向前添加端口。这样,您就可以为xampp提供一个转发到1337的端口,为express服务器提供另一个端口


.

您是如何在xampp中设置端口的,您能否提供xampp>apache>conf>httpd.conf输出以查看端口和IP的侦听设置,请确保在共享之前对IP和端口进行编辑?此外,请首先尝试不带SSL的express服务器,以确保外部连接正确完成。然后,您可以调试SSL部分。XAMPP>apache>conf>httpd.conf被设置为侦听端口1337。服务器在没有https和http模块的情况下工作。当我将其更改为https模块时,它不起作用,当我通过https访问它时,xampp服务器将加载而不是节点js服务器。啊,我现在只将xampp服务器重定向到网站的http版本我不知道当我尝试在node js服务器上安装https时会发生什么,因为https版本无论如何都会进入XAMPP服务器。建议使用类似nginx的东西,因为安装需要承载两台服务器和一个公共IP入口点。您可以在提供的答案中看到更多详细信息。您是正确的,XAMPP优先于express服务器。