/

如何生成本地 SSL 證書

如何生成本地 SSL 證書

註:我在 macOS 上運行了這些命令。Linux 應該以相同的方式運行。我不能保證 Windows 的運行結果。

在專案的根目錄下運行以下命令:

1
openssl req -x509 -newkey rsa:2048 -keyout keytmp.pem -out cert.pem -days 365

現在運行以下命令:

1
openssl rsa -in keytmp.pem -out key.pem

現在你應該在資料夾中有 cert.pemkey.pem 兩個文件。

使用 Express/Node.js,你可以使用以下代碼加載證書和私鑰:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const fs = require('fs')
const https = require('https')
const app = express()

app.get('/', (req, res) => {
res.send('Hello HTTPS!')
})

https.createServer({
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
}, app).listen(3000, () => {
console.log('Listening...')
})

如果你使用的是 create-react-app,請將 package.json 文件中的 start 腳本更改為:

1
"start": "export HTTPS=true&&SSL\_CRT\_FILE=cert.pem&&SSL\_KEY\_FILE=key.pem react-scripts start",

請參考你的框架/庫的文檔以瞭解如何將證書和私鑰傳遞給應用程序。

tags: [“SSL”, “certificate”, “Node.js”, “Express”, “create-react-app”]