mkcert を使ってローカル署名 SSL 証明書を作成する方法 - TechRepublic

mkcert を使ってローカル署名 SSL 証明書を作成する方法 - TechRepublic

ウェブサイトやサービスを展開する際、接続するユーザーへの安心感を高めるために、SSL証明書はほぼ必ず必要になります。本番環境では、必ず証明機関からSSL証明書を購入する必要があります。そうでなければ、ユーザーに十分な安心感を与えることはできません。

ただし、テスト目的では、認証局から証明書を購入する必要はありません(少なくとも本番環境に移行する準備ができるまでは)。そのような場合は、ローカルで署名された証明書を生成することをお勧めします。

Linux には自己署名証明書を作成するためのツールがいくつかあり、そのうちの 1 つが mkcert です。

参照: セキュリティインシデント対応ポリシー (TechRepublic Premium)

mkcert を使ってローカル署名証明書を作成する手順を解説します。Ubuntu Server 20.04 でデモを行います。

必要なもの

これから行うことを再現するには、Ubuntu Server の実行インスタンスと sudo 権限を持つユーザーが必要です。これで準備は完了です。さあ、始めましょう。

mkcertのインストール方法

まず最初に、mkcert をインストールします。その前に、以下のコマンドでいくつかの依存関係をインストールする必要があります。

sudo apt-get install wget libnss3-tools -y

次に、必要な mkcert ファイルをダウンロードします。

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64

次のコマンドで、ファイルを /usr/bin に移動して名前を変更します。

sudo mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert

次のコマンドを使用して、ファイルに実行権限を与えます。

sudo chmod +x /usr/bin/mkcert

インストールを検証するには、以下を実行します。

mkcert --version

ターミナルにリリース番号が表示されます。

最初のSSLを生成する方法

次のコマンドで最初のローカル CA 証明書を生成できます。

mkcert -install

上記のコマンドを実行すると、新しい証明書が生成されます。情報は一切入力する必要はありません。証明書はローカルストアに保存されます。ローカルストアは次のコマンドで見つけることができます。

mkcert -CAROOT

次のような画面が表示されます。

/home/jack/.local/share/mkcert

次に、次のコマンドを使用して、IP アドレス 192.168.1.111 で trtest というテスト Web サイトの証明書を生成します。

mkcert trtest localhost 192.168.1.111 ::1

上記のコマンドの出力には以下が含まれます。

Created a new certificate valid for the following names 📜
- "trtest"
- "localhost"
- "192.168.1.111"
- "::1"

出力には、次のように新しく作成された pem ファイルの場所も含まれます。

The certificate is at "./trtest+3.pem" and the key at "./trtest+3-key.pem"

その後、そのpemファイルをテストWebサーバーが使用するディレクトリにコピーし、設定を行います。例えば、trtest+3-key.pemファイルを/var/www/html/certs/ディレクトリに移動します。その後、Webサーバーでその証明書を使用するように設定します。例えば、NGINXの場合、設定は以下のようになります。

ssl_certificate /var/www/html/certs/trtest+3.pem;
ssl_certificate_key /var/www/html/certs/trtest+3-key.pem;

mkcertツールを使ってローカル署名されたSSL証明書を生成する方法は以上です。証明書を即座に作成する必要がある場合、mkcertは最も簡単なツールの一つです。


画像:GettyImages/茅野雄一郎
Tagged: