[2021年度版]Node.jsでのオレオレ証明書の作成方法とHTTPサーバの立て方

システム開発Tips
$ # オレオレ中間CAの秘密鍵と証明書の生成
$ openssl req -x509 -sha256 -days 3650 -subj "/C=JP/ST=Tokyo/L=Shinjuku-ku/O=EXAMPLE CORPORATION/OU=EXAMPLE DEPARTMENT/CN='My Private CA'" -nodes -newkey rsa:2048 -keyout cakey.pem -out chain.pem

$ # 自身のIPに対する証明書署名要求と秘密鍵の生成
$ openssl req -subj "/C=JP/ST=Tokyo/L=Shinjuku-ku/O=EXAMPLE CORPORATION/OU=EXAMPLE DEPARTMENT/CN='My Private CA'" -nodes -newkey rsa:2048 -keyout privkey.pem -out csr.pem

$ # オレオレ認証局によるサーバ証明書の生成
$ openssl x509 -req -sha256 -days 3650 -in csr.pem -CA chain.pem -CAkey cakey.pem -set_serial 1 -out fullchain.pem

以下のサイトを参考にさせて頂いています。
git bashを使用してコマンド実行するとDEPARTMENT/CNでエラーとなったので再録しています。

参考
 https://qiita.com/Blufe/items/869edba9af11c4266a06

Node.jsでSSLを用いてサーバを作成する際に、必要となるファイルはprivkey.pemとfullchain.pemの2つです。

// curl -k https://localhost:8000/
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('keys/privkey.pem'), // サーバ秘密鍵
  cert: fs.readFileSync('keys/fullchain.pem') // サーバ証明書(CA証明書含む)
};

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);

これでオレオレ証明書を用いたサーバを立てることができます。

フォローお願いします!

コメント

タイトルとURLをコピーしました