在CentOS上配置Node.js應用程序的SSL證書,可以按照以下步驟進行:
首先,你需要一個SSL證書。你可以從以下幾個途徑獲?。?/p>
你可以使用Certbot
工具來獲取Let’s Encrypt證書。以下是安裝和配置Certbot的步驟:
# 安裝EPEL倉庫
sudo yum install epel-release
# 安裝Certbot
sudo yum install certbot python2-certbot-apache
# 獲取證書
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
按照提示完成證書的獲取和配置。
假設你已經有一個Node.js應用程序運行在某個端口(例如3000),你可以使用http
模塊或express
框架來配置SSL。
http
模塊const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem')
};
https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(443);
express
框架如果你使用的是express
,可以這樣配置:
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();
app.get('/', (req, res) => {
res.send('hello world!');
});
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem')
};
https.createServer(options, app).listen(443);
為了確保所有流量都通過HTTPS,你可以配置一個HTTP服務器來重定向所有請求到HTTPS。
const http = require('http');
const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('hello world!');
});
const options = {
key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem')
};
https.createServer(options, app).listen(443);
http.createServer((req, res) => {
res.writeHead(301, { "Location": `https://${req.headers.host}${req.url}` });
res.end();
}).listen(80);
Let’s Encrypt證書每90天會過期一次,你需要設置自動續期。
# 安裝Certbot的自動續期工具
sudo yum install certbot-cron
# 啟動自動續期服務
sudo systemctl start certbot-cron.service
sudo systemctl enable certbot-cron.service
這樣,Certbot會自動檢查并續期你的證書。
通過以上步驟,你可以在CentOS上為你的Node.js應用程序配置SSL證書,并確保所有流量都通過HTTPS傳輸。