在Linux上为Node.js应用程序配置SSL,您需要首先获取一个SSL证书。您可以选择购买一个证书,或者使用免费的Let’s Encrypt证书。以下是使用Let’s Encrypt证书配置SSL的步骤:
对于基于Debian的系统(如Ubuntu):
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
对于基于RHEL的系统(如CentOS、Fedora):
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx
yourdomain.com替换为您的域名:sudo certbot --nginx -d yourdomain.com
Certbot将自动配置Nginx以使用SSL,并将证书文件存储在/etc/letsencrypt/live/yourdomain.com/目录中。
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem', 'utf8'),
cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem', 'utf8')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Hello, SSL!');
}).listen(443);
在这个示例中,我们从Let’s Encrypt证书目录中读取私钥和证书文件,并将它们作为选项传递给HTTPS服务器。
重启Node.js应用程序: 保存更改并重新启动Node.js应用程序以应用新的SSL配置。
更新证书: Certbot会自动为您更新证书,但在证书到期前30天,它会发送提醒。要手动更新证书,请运行以下命令:
sudo certbot renew
现在,您的Node.js应用程序已成功配置了SSL,并可以通过HTTPS访问。