php - 带 Nodejs 的 Apache 上的 SSL

标签 php node.js apache ssl

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

这里PHP是前端,nodejs是后端

现在

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

我正在向 Nodejs 发送 ajax 请求

喜欢

网址:http://example.com:8124/sign_in

哪个工作正常

现在的问题是

当我在 Apache 上启用 ssl 时。

现在我无法向 Node 发送请求。

它给我错误,比如

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

如何解决这个问题

谢谢

最佳答案

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

只需在 Node 应用程序上启用 SSL,它就会工作。

编辑

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

要在 Node.js 中直接使用 SSL,您只需在 app.js 文件中添加几行。看到这个问题:How do I setup a SSL certs for an express.js server?

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

说到端口...确实 HTTPS 默认 在 443 上运行,但您可以随意更改它。请记住指定它,例如:https://example.com:8443/

关于php - 带 Nodejs 的 Apache 上的 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26707256/

相关文章:

javascript - Node.js + MongoDB 检查电子邮件是否已存在于数据库中

node.js - 从公共(public)网络访问在AWS-EC2上运行的NodeJs应用程序

php - osx 10.10 Curl POST 到 HTTPS url 给出 SSLRead() 错误

apache - 如何停止 .htaccess 指令而不重写循环

http - 如何配置 apache 以在每个 HTTP 错误 500 时发送电子邮件

php - fatal error : Call to undefined function mb_strlen()

php - Eloquent 模型批量更新

php - PHP 中两个 mysql 表的 Json

php - 如何使用简单的 xml 对象获取 xml 中的标签名称

javascript - 未处理的 Promise sequelize hooks 和加密密码