簡體   English   中英

使用公共 ACM 在 AWS 上部署 Expressjs

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

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