作成日:2022-10-14
Nextjsでローカルssl環境を構築したいので探してみたがserver.jsファイルを作って...モジュールインストールして...と結構大変な作業だった。もっと簡単な方法は無いのかと探した結果プロキシを使うのが一番簡単でした。
node.jsでプロキシサーバーを起動させ、Next.jsのローカルの開発環境でHTTPS通信を可能にする。
プロキシと言えばnginxが思いつくが、正直windowsでnginxをインストールしてとか大変な作業をしたくない。そのためnode.jsでサーバーを作ります。なにもインストールせず使えるので楽でした。 Nextjsとは関係なく、node.jsでプロキシサーバーを作成し、プロキシサーバーと、Next.jsを起動することでSSL環境を実現しました。
証明書を用意せずにSSL環境ができればと思ったが見当たらなかったので自己証明書を用意する必要があります。node.jsの環境も既にあるので、特に難しい部分は無く簡単に構築ができました。
自己証明書は既にあるという前提で進めていきます。自己証明書の作り方はこちら
適当なところにフォルダーを作成し初期化を行いnodeが使用できる環境を作ります。
npm init -y
npm install http-proxy
必要なパッケージは以下3つになります。
const fs = require('fs')
const https = require('https')
const httpProxy = require('http-proxy');
const fs = require('fs')
const https = require('https')
const httpProxy = require('http-proxy');
httpProxy.createProxyServer({
target: {
host: '0.0.0.0',
port: 3000,
},
ssl:{
key: fs.readFileSync('./server.key'),
cert: fs.readFileSync('./server.crt')
}
}).listen(443);
これだけSSL環境ができてしまいます。変更する部分はkeyとcrtのファイル。そしてportの部分です。
最後にこのproxy.jsを実行すれば、nextjsのSSL環境が実現できます。
node proxy.js
npx next dev
nextjsのローカル開発環境でHTTPSの通信ができました。プロキシ経由なので何か問題があるかもと思っていましたが、今のところ特に問題なく起動しています。
node.jsでこんなに簡単にできるのであればもっと早く知りたかった。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください