簡體   English   中英

為 node.js 服務器公開 ssl 證書

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM