我目前有许多网络应用程序在我网站的不同子域上运行,并且使用 Let's Encrypt 和 Certbot 成功设置了 HTTPS。我的服务器 ( http://localhost:3001 ) 上也运行着一个 Node 应用程序,我的所有 Web 应用程序都连接到该应用程序。我已经为要运行的 Node.js 应用程序设置了一个子域,并为其获取了 SSL 证书。
在此子域的 VirtualHost 条目中,我使用 ProxyPass 指向我的 Node 应用程序,我的配置如下所示:
<VirtualHost MY_IP_ADDRESS:443>
ServerName server.myserver.com
ProxyPass / http://MY_IP_ADDRESS:3001/
ProxyPassReverse / http://MY_IP_ADDRESS:3001/
SSLCertificateFile /etc/letsencrypt/live/server.myserver.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.myserver.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/server.myserver.com/chain.pem
</VirtualHost>
我面临的问题是,当我尝试访问 https://server.myserver.com 时浏览器通知我连接不安全(因此,现在访问 server.myserver.com 的任何其他应用程序都是如此)。
当谈到服务器配置时,我的知识非常有限,所以我不知道问题是什么。这是 Apache 问题还是我的 Node 应用程序需要使用 HTTPS(到目前为止我的研究表明不需要......)?
编辑:我在 CentOS 7 上运行 Apache 2。Node 应用程序是一个运行 HTTP 服务器的快速应用程序。 Firefox 通知我安全证书不受信任,因为它是自签名的。我已经尝试更新它,但问题仍然存在。
最佳答案
已修复!
事实证明,子域“server.myserver.com”是问题所在。这是我服务器的主机名,所以我猜有冲突。
关于node.js - 使用 HTTPS 的 Apache 反向代理到 node.js 应用程序无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756082/