首先,需要在Amazon Linux 2上安装certbot和相关的插件。可以使用以下指令:
sudo yum install certbot python2-certbot-apache
使用certbot生成Letsencrypt SSL证书:
sudo certbot certonly --standalone --email your_email@example.com -d your_domain.com
其中,your_email@example.com为您的电子邮箱地址,your_domain.com为您的域名。根据提示输入相应的信息即可。
将证书安装到NodeJS应用程序中:
将证书文件拷贝到您的NodeJS应用程序项目目录下,例如:
cp /etc/letsencrypt/live/your_domain.com/fullchain.pem /home/your_app/sslcert/fullchain.pem
cp /etc/letsencrypt/live/your_domain.com/privkey.pem /home/your_app/sslcert/privkey.pem
在Amazon Linux 2上安装NodeJS和NPM:
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum install -y nodejs
在您的NodeJS应用程序中添加以下代码来启用HTTPS:
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('/home/your_app/sslcert/privkey.pem'),
cert: fs.readFileSync('/home/your_app/sslcert/fullchain.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("Hello World!");
}).listen(443);
其中,/home/your_app/sslcert为你的证书目录。
使用以下命令启动您的NodeJS应用程序:
sudo node app.js
至此,您的NodeJS应用程序现在应该已经成功运行在您的Amazon Linux 2上,并支持HTTPS。