[英]getting public ssl certificate for node.js server
我在我的 aws ac2 linux 实例上运行 node.js 快速服务器。 我需要通过 https 公开它,以便与从中提取数据的 React 应用程序正常工作。 我能够生成我自己的 ssl 证书,但它不会被其他用户识别,客户端应用程序将通过错误。
您能否解释一下我如何才能获得仅用于节点服务器的公共 ssl 证书。 服务器使用 ip 地址,如 xxx.xx.xx.xx:4500/endpoint。 Aws 似乎提供 ssl,但前提是您为其负载均衡器付费,而我不想那样做。
有没有办法验证我用 openssl 生成的证书,以便我可以公开使用它?
这是我的基本设置:
const express = require('express');
const cors = require('cors');
const mysql = require('mysql');
const moment = require('moment');
var fs = require('fs');
const https = require('https')
const app = express();
xxx
https.createServer({key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')}, app).listen(4500, () => {
console.log('Listening...')
})
先感谢您!
OpenSSL 本身是一个创建自签名证书的工具。 浏览器永远不会信任这些证书。
相反,您可以通过以下命令使用 Let's Encrypt:
apt install certbot
certbot certonly --standalone -d example.com
Let's Encrypt 是一个受信任的实体,因此他们的证书是有效的。
您的新证书将在这样的路径上:
/etc/letsencrypt/live/example.com
正如其他人所建议的,您将需要一个域。 您可以在Freenom等网站上免费获得一个。
如果您在支持Amazon Certificate Manager
的地区,您可以免费获得 SSL 证书。 https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html
为了申请 ssl 证书,最简单的方法是在负载均衡器上使用它。 检查我对这个问题的回答Apollo Server on Ubuntu 18.04 EC2 instance with HTTPS 。
如果你想直接在 EC2 上使用证书。 尝试以下操作。 我自己没有试过这个。 https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-export-private.html
我也看到人们使用https://letsencrypt.org/来获取证书。
浏览器不会信任您的自签名证书。
一种解决方案是为自己获取域,然后获取由 Let's Encrypt 颁发的免费 SSL 证书。 这将消除错误,因为所有主流浏览器都信任 Let's Encrypt 证书。
另一种解决方案是获取 Cloudflare 的免费计划,其中包括 SSL 证书。 更多信息在这里。
可以使用 SSL 证书保护您的 IP,但没有免费的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.