[英]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.