net :: ERR_INSECURE_RESPONSE Angular 2 + Node.js + Socket.io

我正在开发一个与Angular 2,Node.js和socket.io的Web应用程序。 它与http完美地工作,但是我想实现https协议,我打了墙。

我得到NET :: ERR_INSECURE_RESPONSE从angular度到我的网页api的任何http调用,也试图build立一个套接字连接。

这是我做的:

1)生成我的私钥和csr。

2)使用该csr从Comodo申请SSL证书。

3)从Comodo收到2个文件: – domain.ca-bundle – domain.crt

4)我将这两个文件和我的私钥复制到一个文件夹:/ etc / apache2 / ssl /

5)我修改了etc / apache2 / sites-default中的default-ssl.conf来指向这些文件:

SSLCertificateFile /etc/apache2/ssl/domain.crt SSLCertificateKeyFile /etc/apache2/ssl/mypriv.key SSLCertificateChainFile /etc/apache2/ssl/domain.ca-bundle 

再加上:

 ServerName domain.io ServerAlias www.domain.io 

6)启用https并重新启动apache。 如果我的证书设置正确, 请使用SSL分析器( https://sslanalyzer.comodoca.com/ )进行validation。 它确认现在连接到我的网站是安全的,所以我认为这部分是正确的,现在我需要修复应用程序和服务器来处理https。

7)这是如何创buildangular度的套接字连接:

 this.socket = io.connect('https://server_ip' + ':3000', { 

rejectUnauthorized:false});

这个会在晚些时候给我net :: ERR_INSECURE_RESPONSE

8)Angular应用程序也在向服务器发送http请求,如下所示:

 var headers = new Headers(); headers.append('Content-Type', 'application/json'); let options = new RequestOptions({ headers: headers }); return this.http.post('https://server_ip' + ':3000/register', JSON.stringify(userModel), options) .map(res => res.json()) 

这也会给我net :: ERR_INSECURE_RESPONSE以及(响应OPTIONS调用)

9)现在在服务器端,这是相关的一段代码:

 var https = require('https'); var options = { ca: splitca('/etc/apache2/ssl/domain.ca-bundle'), key: fs.readFileSync('/etc/apache2/ssl/mypriv.key'), cert: fs.readFileSync('/etc/apache2/ssl/domain.crt') }; var server = https.createServer(options, app); let io = require('socket.io')(https); server.listen(3000, () => { logger.debug('server started on port'); }) 

服务器启动正常,但任何来自angular度的调用都会导致net :: ERR_INSECURE_RESPONSE响应(尝试chrome,mozilla和IE)。 服务器和angular度应用程序都在同一个IP上运行。

任何想法,我可能在这里做错了吗? 谢谢!