溫馨提示×

Debian如何為Node.js應用配置SSL證書

小樊
43
2025-06-01 18:14:07
欄目: 云計算

在Debian系統上為Node.js應用配置SSL證書,可以按照以下步驟進行:

1. 獲取SSL證書

首先,你需要獲取一個SSL證書。你可以從Let’s Encrypt免費獲取,或者從其他證書頒發機構購買。

使用Let’s Encrypt

  1. 安裝Certbot:

    sudo apt update
    sudo apt install certbot
    
  2. 運行Certbot以獲取證書:

    sudo certbot certonly --standalone -d yourdomain.com -d www.yourdomain.com
    

    按照提示完成證書的申請和驗證過程。

2. 配置Node.js應用

假設你的Node.js應用運行在http://localhost:3000,你可以使用express框架來配置SSL。

安裝必要的模塊

npm install express https fs

創建SSL配置文件

在你的Node.js應用目錄下創建一個ssl-config.js文件,內容如下:

const fs = require('fs');
const https = require('https');

const options = {
  key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem'),
  cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem')
};

const app = require('./app'); // 你的Express應用

https.createServer(options, app).listen(443, () => {
  console.log('Server is running on https://yourdomain.com');
});

3. 更新防火墻設置

確保你的防火墻允許HTTPS流量(端口443):

sudo ufw allow 443/tcp

4. 重啟Node.js應用

重啟你的Node.js應用以應用新的SSL配置:

pm2 restart your-app-name

或者如果你沒有使用pm2,可以直接運行你的Node.js應用:

node ssl-config.js

5. 自動續期證書

Let’s Encrypt證書每90天會過期一次,你需要設置自動續期。

  1. 編輯Certbot的續期腳本:

    sudo nano /etc/letsencrypt/renewal-hooks/deploy/renewal.sh
    
  2. 添加以下內容以重啟Node.js應用:

    #!/bin/sh
    systemctl restart your-app-name
    
  3. 賦予腳本執行權限:

    sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/renewal.sh
    
  4. 設置定時任務以每天檢查證書續期:

    sudo crontab -e
    

    添加以下行:

    0 0 * * * /usr/bin/certbot renew --deploy-hook "/etc/letsencrypt/renewal-hooks/deploy/renewal.sh"
    

通過以上步驟,你就可以在Debian系統上為Node.js應用成功配置SSL證書了。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女