Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Node.js Nodejs中的HTTPS问题和角度端口冲突_Node.js_Angular_Express_Ssl_Dns - Fatal编程技术网

Node.js Nodejs中的HTTPS问题和角度端口冲突

Node.js Nodejs中的HTTPS问题和角度端口冲突,node.js,angular,express,ssl,dns,Node.js,Angular,Express,Ssl,Dns,我正在为运行在Apache上的Angular+node应用程序安装SSL证书。我已经生成了密钥CSR,并在GoDaddy购买了证书,一切正常 我在Apache中安装了它,并为80和443配置了VirtualHost。当通过https进入时,网站会重定向 当我的web应用试图通过访问节点服务器时,就会出现问题。这将返回html,而不是点击节点服务器并获取我的数据库信息。如果我使用IP而不是域来点击它,它工作得很好,因为我可以指定端口,但是它会给我一个错误,因为证书无法验证(因为IP与证书的域不匹配

我正在为运行在Apache上的Angular+node应用程序安装SSL证书。我已经生成了密钥CSR,并在GoDaddy购买了证书,一切正常

我在Apache中安装了它,并为80和443配置了VirtualHost。当通过https进入时,网站会重定向

当我的web应用试图通过访问节点服务器时,就会出现问题。这将返回html,而不是点击节点服务器并获取我的数据库信息。如果我使用IP而不是域来点击它,它工作得很好,因为我可以指定端口,但是它会给我一个错误,因为证书无法验证(因为IP与证书的域不匹配,这是有意义的)

这是因为https使用的是端口443,我的Angular应用程序在端口443中运行,而我的节点服务器在端口8443中运行。当我指向8443 vs Angular应用程序中的节点服务器时,如何做到这一点?可以在这两个应用程序中共享域吗?(我只买了1个SSL证书)。我应该在虚拟主机中更改此选项吗?怎么做

我想澄清的是,在转向https之前,http中的一切都工作得很好

<VirtualHost *:80>
    ServerName mydomain
    #Redirect / https://mydomain/

</VirtualHost>

<VirtualHost *:443>

    ServerName mydomain

    SSLEngine on
    SSLCertificateFile  /etc/ssl/private/server.crt
    SSLCertificateKeyFile /etc/ssl/private/server.key
    SSLCACertificateFile /etc/ssl/private/server.crt

    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>

</VirtualHost>
总之,我需要服务器和web都通过https运行,我只有一个域,我很难理解在每种情况下应该如何引用端口

编辑:我一直在寻找,发现这可能是我想要的,但不起作用:

    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /api https://myip:8443/api
    ProxyPassReverse /api https://myip:8443/api
我真的很感激这里有一些关于良好实践的建议


提前非常感谢

如果有人遇到这种情况,我使用代理解决,下面是完整的虚拟主机:

<VirtualHost *:443>
    SSLProxyEngine on
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /api https://myip/api
    ProxyPassReverse /api https://myip/api
</VirtualHost>

SSLProxyEngine打开
代理主机
代理请求关闭
ProxyPass/apihttps://myip/api
ProxyPassReverse/apihttps://myip/api
<VirtualHost *:443>
    SSLProxyEngine on
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyPass /api https://myip/api
    ProxyPassReverse /api https://myip/api
</VirtualHost>