我在Ovh租了一个虚拟专用服务器,在该服务器上,前端运行一个nodejs实例,后端和mysql运行一个tomcat 9实例。
我在letEncrypt上获得了SSL证书,并将它们存储在服务器上,并设置了nodeJs来使用它们。我将http连接重定向到https。
当我浏览网站页面时,nodeJs可以通过ssl正确显示它们,但是当我进入tomcat应该接管nodeJs接收数据的登录页面时,我在Google的网络控制台中得到以下输出。
>SSL_ERROR_RX_RECORD_TOO_LONG
NodeJs使用以下URL向tomcat发送请求: https://www.mysite.fr:8080/myApp/
我对服务器管理和SSL知识不多,所以我想知道哪种方法对我来说是最好的解决方案。
考虑到tomcat只应接收来自VPS内部的请求,我是否必须设置tomcat来侦听https?如果没有,我该如何设置?如果是,我可以使用与NodeJ所使用的证书相同的证书吗?
节点正在监听端口443上的https,tomcat是否应该在同一端口上监听https?
请告诉我正确的(最佳)方法...
编辑
我在https://www.mulesoft.com/tcat/tomcat-ssl上发现了一个论点 指出以下内容。
在遇到启动和运行SSL的麻烦之前,确定您是否实际上应该使用此配置可能是一个好主意。您需要使用Tomcat处理SSL连接的最常见原因是将Tomcat作为独立的Web服务器运行。
换句话说,如果您要在Tomcat上安装Web服务器并使用 在大多数情况下,它仅作为应用程序服务器或Tomcat servlet容器 在这种情况下,您应该让网络服务器充当所有SSL的代理 请求。
为什么?因为所有解密,加密和握手都不是 免费-实际上,它不仅是“不免费”,而且还占用大量CPU, 并且大大降低了传输速度。其他 的话,如果您已经在使用网络服务器来提供静态广告 内容,最好让它处理所有内容,以释放您的内容 Tomcat服务器专注于其特长-快速生成动态 内容,并允许其将数据作为 尽快以明文格式。
我的tomcat实例显然只是nodeJs前面将在其中请求信息的应用程序容器。
如何使它充当所有SSL的代理 请求?