[英]Deploy Expressjs on AWS with Public ACM
我在 expressjs 中構建我的項目,我想將它部署在特定的端口上。 我在我的 AWS EC2 實例(Ubuntu)上部署了它並且它工作正常,但問題是它在 HTTP 上運行,而不是 HTTPS。 所以我研究了如何在 HTTPS 上運行 expressjs,我發現的唯一方法如下:
var fs = require("fs"),
http = require("https");
var privateKey = fs.readFileSync('sslcert/server.key').toString();
var certificate = fs.readFileSync('sslcert/server.crt').toString();
var credentials = {key: privateKey, cert: certificate};
var server = http.createServer(credentials,function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(8000);
但是這種方法的問題是它需要證書和密鑰文件來啟用 HTTPS。 我正在使用公共 ACM,AWS 沒有為此提供文件。 我嘗試使用庫https://www.npmjs.com/package/express-sslify的另一種方法。 它將我的 expressjs 重定向到 HTTPS 但它給出了 SSL 錯誤。 SSL 已經使用 AWS ACM 公共證書部署在我的網站上,並且運行良好。 請指導我需要哪些步驟才能使我的 expressjs 項目與 AWS ACM 兼容。
請參閱文檔:
AWS Certificate Manager 支持越來越多的 AWS 服務。 您不能直接在基於 AWS 的網站或應用程序上安裝 ACM 證書或私有 ACM 私有 CA 證書。
將其中一項支持的服務放在您的 Express 服務器前面。 彈性負載均衡器可能是您的最佳選擇,因為您使用的是 EC2 實例,而不是更面向服務的 AWS 功能之一。
如果您想在您的 EC2 實例上處理 SSL,那么亞馬遜建議使用第三方證書頒發機構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.