Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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的Apache上的SSL_Php_Node.js_Apache_Ssl - Fatal编程技术网

Php 使用Nodejs的Apache上的SSL

Php 使用Nodejs的Apache上的SSL,php,node.js,apache,ssl,Php,Node.js,Apache,Ssl,我正在使用nodejs和PHP以及Mysql开发应用程序 PHP是前端,nodejs是后端 现在 我创建了一个表单,在创建表单时 我正在向Nodejs发送ajax请求 像 网址: 哪个工作正常 现在的问题是 当我在Apache上启用ssl时 现在我无法向节点发送请求 这给了我错误,就像 跨源策略,加载不安全内容 如何解决这个问题 谢谢,这不是PHP的问题,而是JavaScript(AJAX)的问题。这是因为您试图从不使用SSL的服务器加载通过SSL提供服务的网页中的内容 只需在节点应用程序上启用

我正在使用nodejs和PHP以及Mysql开发应用程序

PHP是前端,nodejs是后端

现在

我创建了一个表单,在创建表单时

我正在向Nodejs发送ajax请求

网址:

哪个工作正常

现在的问题是

当我在Apache上启用ssl时

现在我无法向节点发送请求

这给了我错误,就像

跨源策略,加载不安全内容

如何解决这个问题


谢谢,这不是PHP的问题,而是JavaScript(AJAX)的问题。这是因为您试图从不使用SSL的服务器加载通过SSL提供服务的网页中的内容

只需在节点应用程序上启用SSL,它就可以工作了

编辑 我不建议在Node.js中创建代理服务器。
实际上,在每个Node.js应用程序前面创建代理服务器是个好主意。事实上,出于安全原因,大多数使用Node.js构建的网站前面都有一个Nginx反向代理。也就是说:用户连接到Nginx(为了获得更好的性能而选择Apache),Nginx向Node.js应用程序发出请求。
使用此设置,只要Nginx启用了SSL,实际上就不需要在Node.js中启用SSL

要在Node.js中直接使用SSL,只需在app.js文件中添加几行即可。见本问题:

如果服务器位于同一主机名上(只是不同的端口),则不需要另一个SSL证书;如果服务器位于不同的主机名(例如子域)上,并且您的SSL证书不是通配符证书,那么您将需要另一个证书


说到港口。。。HTTPS默认在443上运行,这是事实,但您可以随意更改它。请记住指定它,例如:

这不是PHP的问题,而是JavaScript(AJAX)的问题。这是因为您试图从不使用SSL的服务器加载通过SSL提供服务的网页中的内容

只需在节点应用程序上启用SSL,它就可以工作了

编辑 我不建议在Node.js中创建代理服务器。
实际上,在每个Node.js应用程序前面创建代理服务器是个好主意。事实上,出于安全原因,大多数使用Node.js构建的网站前面都有一个Nginx反向代理。也就是说:用户连接到Nginx(为了获得更好的性能而选择Apache),Nginx向Node.js应用程序发出请求。
使用此设置,只要Nginx启用了SSL,实际上就不需要在Node.js中启用SSL

要在Node.js中直接使用SSL,只需在app.js文件中添加几行即可。见本问题:

如果服务器位于同一主机名上(只是不同的端口),则不需要另一个SSL证书;如果服务器位于不同的主机名(例如子域)上,并且您的SSL证书不是通配符证书,那么您将需要另一个证书


说到港口。。。HTTPS默认在443上运行,这是事实,但您可以随意更改它。请记住指定它,例如:

这不是PHP的问题,而是JavaScript(AJAX)的问题。这是因为您试图从不使用SSL的服务器加载通过SSL提供服务的网页中的内容

只需在节点应用程序上启用SSL,它就可以工作了

编辑 我不建议在Node.js中创建代理服务器。
实际上,在每个Node.js应用程序前面创建代理服务器是个好主意。事实上,出于安全原因,大多数使用Node.js构建的网站前面都有一个Nginx反向代理。也就是说:用户连接到Nginx(为了获得更好的性能而选择Apache),Nginx向Node.js应用程序发出请求。
使用此设置,只要Nginx启用了SSL,实际上就不需要在Node.js中启用SSL

要在Node.js中直接使用SSL,只需在app.js文件中添加几行即可。见本问题:

如果服务器位于同一主机名上(只是不同的端口),则不需要另一个SSL证书;如果服务器位于不同的主机名(例如子域)上,并且您的SSL证书不是通配符证书,那么您将需要另一个证书


说到港口。。。HTTPS默认在443上运行,这是事实,但您可以随意更改它。请记住指定它,例如:

这不是PHP的问题,而是JavaScript(AJAX)的问题。这是因为您试图从不使用SSL的服务器加载通过SSL提供服务的网页中的内容

只需在节点应用程序上启用SSL,它就可以工作了

编辑 我不建议在Node.js中创建代理服务器。
实际上,在每个Node.js应用程序前面创建代理服务器是个好主意。事实上,出于安全原因,大多数使用Node.js构建的网站前面都有一个Nginx反向代理。也就是说:用户连接到Nginx(为了获得更好的性能而选择Apache),Nginx向Node.js应用程序发出请求。
使用此设置,只要Nginx启用了SSL,实际上就不需要在Node.js中启用SSL

要在Node.js中直接使用SSL,只需在app.js文件中添加几行即可。见本问题:

如果服务器位于同一主机名上(只是不同的端口),则不需要另一个SSL证书;如果服务器位于不同的主机名(例如子域)上,并且您的SSL证书不是通配符证书,那么您将需要另一个证书


说到港口。。。HTTPS默认在443上运行,这是事实,但您可以随意更改它。请记住指定它,例如:

在节点上启用ssl的简单方法是在应用程序前面使用代理:

var fs = require('fs');
var httpProxy = require('http-proxy');

var privateKey = fs.readFileSync('key.pem').toString();
var certificate = fs.readFileSync('cert.pem').toString();
var chainCertificate = fs.readFileSync('ca.pem').toString();


httpProxy.createServer({
      target: {
        host: 'localhost',
        port: ...your application port...
      },
      ssl: {
        key: privateKey,
        cert: certificate,
        ca: chainCertificate
      }
    }).listen(...the port for ssl...);

在节点上启用ssl的一种简单方法是在应用程序前面使用代理:

var fs = require('fs');
var httpProxy = require('http-proxy');

var privateKey = fs.readFileSync('key.pem').toString();
var certificate = fs.readFileSync('cert.pem').toString();
var chainCertificate = fs.readFileSync('ca.pem').toString();


httpProxy.createServer({
      target: {
        host: 'localhost',
        port: ...your application port...
      },
      ssl: {
        key: privateKey,
        cert: certificate,
        ca: chainCertificate
      }
    }).listen(...the port for ssl...);

在节点上启用ssl的一种简单方法是在