我在 AWS lightsail 上部署了前端 React 应用程序和后端节点/express 应用程序。 我已将前端配置为使用 bncert 使用 https,但我现在需要让后端使用 https。我将此配置添加到我的 Express 应用程序中
const options = {
key: fs.readFileSync('/opt/bitnami/apache/conf/bitnami/certs/server.key'),
cert: fs.readFileSync('/opt/bitnami/apache/conf/bitnami/certs/server.crt'),
}
const server = https.createServer(options, app);
server.listen(5000, () => {
console.log('HTTPS Server running on port 5000');
});
但是,当我像这样访问我的网站时:https://myapp.com:5000/api/getcontent Chrome 警告我此应用程序不安全。有谁知道问题出在哪里吗?
如果您的应用程序的前端需要 HTTPS,那么在 AWS 上托管时您有多种选择。需要注意的是,您不能让使用 HTTPS 的前端与使用 HTTP 的后端进行通信,因为这会导致安全漏洞。
我个人更喜欢的一种方法是使用利用 AWS API Gateway 和 Lambda 函数的无服务器解决方案。这个设置看起来像:
前端 -> API 网关 -> Lambda -> AWS 服务
借助这种无服务器架构,启用 HTTPS 非常简单,因为您无需担心配置服务器或管理基础设施。 API 网关会自动为您处理 HTTPS 配置。
另一种选择是使用 AWS Amplify,它提供完全托管的后端解决方案。在 Amplify 上部署时,后端会自动支持 HTTPS,这是一个方便的选择。
如果您使用提供虚拟专用服务器 (VPS) 的 AWS Lightsail,则需要手动配置 SSL/TLS 证书。高级步骤是:
在 AWS Lightsail 中配置 SSL/TLS 证书。获得证书后,您需要在 Lightsail 实例中配置它。您可以通过以下方式执行此操作: