はじめに
自分の探し方が悪いのか、ローカルPC内でhttpのjson-serverはみつかるのですが、httpsのjson-serverがみつからなかったのでやりました。
環境
- windows10
使ったもの
- hotel (探しにくいのでこれだけはリンクはります https://github.com/typicode/hotel)
- json-server
- local-ssl-proxy
- openssl
設定ファイル等のフォルダ
C:\hotel\json-server
C:\hotel\local-ssl-proxy
構成
hotel 起動 → local-ssl-proxy と json-server を起動
SSL通信 → local-ssl-proxyの9000ポート → json-server 3000ポート
管理画面
- hotel
http://localhost:2000/
それぞれの画面
-
local-ssl-proxy
https://localhost:9000/ -
json-server
http://localhost:3000/
設定
インストールが終ったら下記を実施します。
※インストールについては下のほうに記載しました。
json-server
1 C:\hotel\json-server
に移動
2 1で移動した場所に、db.json を作成
※ db.jsonの参考
https://github.com/typicode/json-server/blob/master/db.json
3 1で移動した場所で、コマンドプロンプトで下記のコマンドを実行
hotel add "json-server --watch db.json --p %PORT%" --port 3000
local-ssl-proxy
1 C:\hotel\local-ssl-proxy
に移動
2 1で移動した場所に、SSL証明書を作成する(chrome対応版)
(ページ下の「SSL証明書の作り方」を参照)
3 1で移動した場所で、コマンドプロンプトで下記のコマンドを実行
hotel add "local-ssl-proxy --source %PORT% --target 3000" --port 9000
使い方
コマンドプロンプトでhotelを起動してから管理画面を見ます。
hotel start
止め方は下記です
hotel stop
管理画面をみるとjson-server、local-ssl-proxyのオンオフのスイッチがあるのでスイッチを入れたら動きます。
http://localhost:2000/
その状態で下記をブラウザで開けば、SSLで動作しているのがわかります。
https://localhost:9000/posts
それぞれののインストール
申し訳ないですが、node.jsのインストールは、各自で探してみてください・・・
私はchoco install nodist -y
でインストールしてます。
hotel
npm install -g hotel
json-server
npm install -g json-server
local-ssl-proxy
npm install -g local-ssl-proxy
openssl
chocolateyでインストールしました。
choco install openssl -y
下記参考です。
PC移行でchocolateyで入れた自分のソフト一覧
https://qiita.com/lunar_sword3/items/cf67d147f53ab22189be
SSL証明書の作り方
SSL証明書の作り方は下記を参考にしました。
Chrome58以降でも使えるSSL/TLSオレオレ証明書の作り方
https://www.server-memo.net/memo/ssl-cert-san.html
4つの黄色の箇所のコマンドを実行するだけです。
CSRは適宜入力してください。
3つめだけは下記になります。
echo "subjectAltName = DNS:*.exaple.com" > san.txt
↓
echo subjectAltName = DNS:localhost > san.txt
証明書のブラウザ(chrome)へのインストール方法は下記とかを参照です
https://jp.globalsign.com/support/faq/558.html
※インストールした後はブラウザの再起動します
おわりに
dockerで簡単にできるローカルjson-serverはいっぱいあるのですが、諸事情でdockerがインストールできなくなりました。
chocolateyでインストールとアンインストールしたら中途半端な状態で残ってどうしようもなくなってしまいました。
解決方法を教えてください