0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mkcertを使ったローカルHTTPS構築手順(Ubuntu on WSL)

Posted at

はじめに

本記事では、Windows の PC で WSL(Ubuntu)を使いながら、mkcert を利用してローカル開発用の HTTPS 環境を構築する手順をまとめます。

対象読者:

  • Windows + WSL2 (Ubuntu) で開発しているエンジニア
  • ローカル HTTPS 証明書を簡単に作りたい人
  • ブラウザで「安全な接続」と認識される開発環境を作りたい人
  • 使用ブラウザ;Chrome

mkcert とは

  • ローカル開発用の SSL 証明書を簡単に発行できるツール
  • 自動で Root CA を作成し、OS/ブラウザに信頼させることが可能
  • 自己署名証明書より簡単でブラウザ警告が出にくい

公式ページ:https://github.com/FiloSottile/mkcert


1. WSLの確認と更新

mkcertをインストールするにあたって、Ubuntu(WSL)環境の確認を行います。

# WSLのバージョン確認(Windows側)
wsl -l -v
# Ubuntuの更新
sudo apt update && sudo apt upgrade -y

2. mkcertのインストール

Ubuntu上の任意のディレクトリ上で、mkcertをインストールします。

# wgetのインストール(ダウンロードコマンドのインストール)
sudo apt install wget -y
# mkcert のバイナリをダウンロード
wget https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-linux-amd64
# 実行権限の付与
chmod +x mkcert-linux-amd64
# システムのパスに移動してどこからでも使えるようにする
sudo mv mkcert-linux-amd64 /usr/local/bin/mkcert
# バージョン確認
mkcert -version

Firefoxを使用している場合は、以下のコマンドで、依存パッケージをインストールする必要があります。

# Firefox用に依存パッケージをインストール
sudo apt install libnss3-tools -y

3. RootCA(ルート証明書)の作成とインストール

Ubuntu内の任意のディレクトリ上で、RootCA(ルート証明書)を作成およびインストールします。
※これはUbuntu内で信頼されていますが、Windows側ではまだ信頼されていません。

# mkcertのインストール
mkcert -install

4. サーバ証明書(SSL/TLS証明書)の発行

Ubuntu内のプロジェクトディレクトリの、.pemファイルを置きたい場所で以下のコマンドを叩く。
※サーバ証明書を置く場所、ドメインはプロジェクトにより異なります。
.key は git に絶対上げないこと。

# 開発用ドメインの証明書を発行
mkcert localhost 127.0.0.1 ::1 myapp.local

これで証明書の発行自体は完了です。

5. Windows側へのRootCA(ルート証明書)インポート

1. 証明書マネージャーを開く

まず、Windowsの証明書マネージャーを開きます。
Windowsキー+Rを押して、certmgr.mscと入力してEnter。

2. Windowsへのインポート

  1. 左側で「信頼されたルート証明機関」を展開
  2. 「証明書」を右クリック
  3. 「すべてのタスク」→「インポート」
  4. 「次へ」
  5. 「参照」でダウンロードフォルダのrootCA.pemを選択(ファイル種類を「すべてのファイル」に変更)
  6. 「次へ」
  7. 「証明書をすべて次のストアに配置する」で「信頼されたルート証明機関」になっているか確認
  8. 「次へ」→「完了」

以上でWSL環境でのmkcertを使ったローカルHTTPS構築手順が完了です。
もし今回の手順でうまくいかない場合は、以下を確認してください。

  • 実行権限
  • mkcertの移動先パス
  • Ubuntu側の証明書ストアの書き込み権限
  • 依存パッケージ不足の確認
  • 使用ブラウザ(Firefoxなら「証明書管理」から手動でインポートが必要)
  • サーバ証明書がプロジェクト内に置かれているか
  • .keyファイルがgitに含まれていないか
  • ブラウザのキャッシュクリア

以上です。
ご一読いただきありがとうございます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?