在 CentOS 上配置 Node.js 應用的 SSL 證書,可以按照以下步驟進行:
首先,你需要獲取一個 SSL 證書。你可以從 Let’s Encrypt 免費獲取證書,或者從其他證書頒發機構購買。
你可以使用 Certbot 來獲取和自動續期 Let’s Encrypt 證書。
sudo yum install epel-release
sudo yum install certbot python2-certbot-nginx
然后運行 Certbot 來獲取證書:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示完成證書的獲取和配置。
假設你已經有一個 Node.js 應用,并且使用的是 Express 框架。你需要修改你的應用代碼來使用 HTTPS。
確保你已經安裝了 https
和 fs
模塊,這些模塊是 Node.js 內置的,不需要額外安裝。
在你的 Node.js 應用中,創建一個 HTTPS 服務器并配置 SSL 證書。
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
// 讀取 SSL 證書文件
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 服務器
https.createServer(options, app).listen(443, () => {
console.log('HTTPS Server running on port 443');
});
為了確保所有流量都通過 HTTPS,你可以設置一個 HTTP 服務器來重定向所有請求到 HTTPS。
const http = require('http');
// 創建 HTTP 服務器
http.createServer((req, res) => {
res.writeHead(301, { 'Location': `https://${req.headers.host}${req.url}` });
res.end();
}).listen(80);
確保你的 Node.js 應用已經正確配置了 HTTPS,并且可以通過瀏覽器訪問。
打開瀏覽器并訪問 https://yourdomain.com
,你應該能夠看到你的應用,并且瀏覽器地址欄會顯示安全鎖圖標。
Let’s Encrypt 證書的有效期是 90 天,因此你需要設置自動續期。
Certbot 提供了一個自動續期的腳本,你可以將其添加到 cron 任務中。
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
這會每天檢查證書是否需要續期,并在續期后重新加載 Nginx 配置。
通過以上步驟,你就可以在 CentOS 上為你的 Node.js 應用配置 SSL 證書了。