WSL環境でルート・サーバ証明書を作成

概要

複数のサーバ証明書を作成する前提で、次の自己署名のルート証明書・サーバ証明書をコピペで作成する手順を紹介します。
実行環境として、Windows 11のWSL2で動作するUbuntu24.04.3 LTS(OpenSSL 3.0.13)を使用しています。

ファイル名説明
rootca.keyルート証明書の鍵
rootca.crtルート証明書
${SERVER}.keyサーバ証明書の鍵
${SERVER}.crtサーバ証明書
${SERVER}.pfxサーバ証明書・鍵ペア(PKCS#12形式)

手順

各手順のコマンドをコピペして、ターミナルに張り付けて実行してください。

  1. ルート証明書と鍵を生成します。
  2. サーバ証明書を作成するためのパラメータ(環境変数)を定義します。
    追加でサーバ証明書を作成する場合、以降の手順を繰り返してください。
  3. サーバ証明書を作成します。

動作確認

証明書の確認方法

次のコマンドでルート証明書の内容を確認できます。

ルート証明書の場合は次のように出力されます。

クライアントでの証明書エラーの解消

作成したルート証明書を「信頼されたルート証明機関」にインポートします。
※クライアントとして、Windowsを想定。

  1. エクスプローラにて、rootca.crtをダブルクリックします。
  2. 「全般」タブの「証明書のインストール」をクリックします。
  3. 「保存場所」で「現在のユーザー」を選択して、「次へ」をクリックします。
  4. 「証明書をすべて次のストアに配置する」の「証明書ストア」として「信頼されたルート証明機関」を選択し、「次へ」をクリックします。
  5. 「完了」をクリックします。
  6. 「この証明書をインストールしますか?」では「はい」をクリックします。
  7. エクスプローラにて、再度rootca.crtをダブルクリックします。証明書のエラーが表示されないことを確認します。

参考

  • ルート証明書を作成する必要性
    • Webサーバ用に自己署名のサーバ証明書を作成する場合、それぞれのサーバ証明書をクライアントの「信頼されたルート証明機関」にインポートする必要があります。
    • 多数のWebサーバを使用する場合、それぞれのサーバ証明書を同様にインポートする必要があります。また、開発者が複数になると、さらに大きな負担になります。
    • 各サーバ証明書をルート証明書で署名することで、このような負担を軽減できます。(ルート証明書のみのインポートで、複数のサーバ証明書のエラーを解消できます。)
  • 各ファイルの用途
    • 複数のサーバ証明書を作成する場合、同じrootca.key, rootca.crtを使用します。
    • ブラウザで「信頼するサーバ証明書」とするために、rootca.crtをクライアントの「信頼されたルート証明機関」にインポートします。
    • Apache HTTP ServerやNGINXなどでは、${SERVER}.key, ${SERVER}.crtを使用します。
    • Java実行環境、Windows(IIS, Azure)などでは、${SERVER}.pfxを使用します。