Php 使用Nodejs的Apache上的SSL
我正在使用nodejs和PHP以及Mysql开发应用程序 PHP是前端,nodejs是后端 现在 我创建了一个表单,在创建表单时 我正在向Nodejs发送ajax请求 像 网址: 哪个工作正常 现在的问题是 当我在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提供服务的网页中的内容 只需在节点应用程序上启用
谢谢,这不是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的一种简单方法是在