‣
クライアント証明書を使用したHTTPS通信を設定する流れを、具体例と簡単な例えを交えて解説します。以下では、Aサーバ(クライアント証明書を持つサーバ)とBサーバ(HTTPSサーバ)の間で安全に通信する設定を進めます。
設定の中で使用する重要な要素について簡単に説明します。
• CA証明書: 信頼性を保証する証明書の発行者(認証局)の証明書。例えると「信頼できる判子」。
• CA秘密鍵: CA証明書の作成に使用する秘密鍵。絶対に漏洩してはいけません。
• サーバ証明書: HTTPSサーバ用の証明書。Bサーバがクライアントに対して「私が正当なサーバです」と証明するために使用します。
• クライアント証明書: AサーバがBサーバに接続する際に「私が正当なクライアントです」と証明するための証明書。
• CSR (Certificate Signing Request): 証明書を発行するための申請書。例えると「証明書の申し込みフォーム」。
• PEM形式: 証明書や鍵ファイルの形式。テキスト形式で読み書きしやすい。
ステップ1: CA証明書と秘密鍵の作成
まず、CA証明書とCA秘密鍵を作成します。これらはクライアント証明書とサーバ証明書を発行するために使用します。
コマンド例:
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt \
-subj "/C=US/ST=California/L=San Francisco/O=MyOrg/CN=MyRootCA"
• 例え: CA証明書と秘密鍵は「信頼できる署名用の判子とその印鑑証明」に相当します。