在你的Express加上https(SSL)

如何在你的Express服務中加上SSL,如果你不希望付費申請的話,可以直接使用SSL For Free

你唯一要做的事就是每三個月更新一次(你可以設定郵件通知)

ssl.png

申請方式請參閱這篇文章SSL For Free 免費 SSL 憑證申請,使用 Let’s Encrypt 最簡單方法教學!

申請完成後你會取得三個檔案

  • ca_bundle.crt
  • certificate.crt
  • private.key

certificate.crt需先轉成pem檔才可以使用

1
openssl x509 -in certificate.crt -inform der -outform pem -out certificate.pem

透過openssl將crt轉成pem檔

匯入express服務

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var fs = require('fs');
var path = require('path');
var keyPath = './private.key';
var certPath = './certificate.pem';
var hskey = fs.readFileSync(keyPath);
var hscert = fs.readFileSync(certPath);
var express = require('express');
var https = require('https');
var app = express();
app.use(express.static(path.join(__dirname, 'web')));
var server = https.createServer({
key: hskey,
cert: hscert
}, app);
server.listen(443, function() {
console.log('runing Web Server in ' + port + ' port...');
});

SSL預設對外請使用 443 port,路由請記得開啟