NodeJS + CouchDB:从HTTP迁移到HTTPS

时间:2019-02-21 11:59:02

标签: node.js ssl ionic-framework https couchdb

我有以下设置:

  • 我通过远程桌面登录的Windows服务器;
  • 在此服务器中,我移动了ionic / node.js项目的www文件夹;
  • 此服务器通过端口80上的http充当Web服务器;
  • 该网站在端口5984上使用了沙发数据库。

现在,我正在尝试将整个系统迁移到https。

尝试一下,我做了一个自己签名的SSL证书(一切正常后,我将购买适当的SSL证书)。 现在,有了证书,我可以通过以下网址访问网站:

  

https://www.mywebsite.it:3000/

但是我有以下问题:

  • 我的浏览器不断检测到该网站不安全,因此我必须先对其进行授权才能访问。我认为这是因为SSL是自签名的
  • 如果我打开Chrome开发者工具,则会收到以下消息: “混合内容:位于处的页面已通过HTTPS加载,但请求了不安全的XMLHttpRequest端点。该请求已被阻止;必须通过HTTPS提供内容。” 我必须在Chrome中通过以下按钮对其进行授权

enter image description here

该如何解决?显然,我希望用户不必授权太多东西。

1 个答案:

答案 0 :(得分:0)

我在Ubuntu而不是Windows上运行服务器,但是解决此问题的一种方法是在服务器上使用Nginx作为反向代理。有许多教程可帮助您使用Let's Encrypt(免费SSL证书)设置Nginx,以便与服务器的HTTPS连接转到端口443上的Nginx,然后Nginx将请求重定向到现有Web服务器的端口80 。

如果应该从Internet(而不是仅Node.js)访问CouchDb,则可以使用Nginx将传入的CouchDb请求也从端口443重定向到端口5984。

当然,您也可以设置已经用作反向代理的任何Web服务器。但是使用Nginx是一个很容易被人借鉴的途径,在这里和其他地方都可以找到大量的安装和配置帮助/建议。