JavaScript(Node)を使ってlocalhost(https)で自己署名証明書の挙動を確認してみる

自己署名証明書を検証する触る機会があったので記録にまとめます。

今回はこちらのブログを参考にさせて頂きました。こちらのブログさんですと本番で試す用だったのでlocalhost用に書き換えてみました。

自己署名証明書の作成

$ openssl genrsa -out server_key.pem 2048
$ openssl req -batch -new -key server_key.pem -out server_csr.pem -subj "/C=JP/ST=Chiba/L=Funabashi/O=Jugeme/OU=Dev/CN=localhost"
$ openssl x509 -in server_csr.pem -out server_crt.pem -req -signkey server_key.pem -days 73000 -sha256

サーバーの作成

const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();
const options = {
 key: fs.readFileSync('./server_key.pem'),
 cert: fs.readFileSync('./server_crt.pem')
};
const server = https.createServer(options, app);
app.get('/', (req, res) => {
   res.writeHead(200);
   res.end("Hello World.");
});
server.listen(3000);

ブラウザ

こんな感じで、いつも見る証明書が間違っていて危険なページを再現する事ができます。

検証結果

例えば、自己署名証明書をKeychainなどに受け入れた場合Safariでは、警告が出なくなります。ただChromeの方は受け入れてくれません。

むしろChromeのURL欄に chrome://flags/#allow-insecure-localhost を入力してEnableにするだけで警告がなくなりました。

本記事は以上になります。

MENTA

MENTAでプログラミングのサポートを行っているのでご紹介致します。


この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

サポート頂けたらめっちゃ喜びます!

これからも頑張ります🐣
1

米本剛士

ヨネアップのプログラミングマガジン

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。