2.2. OpenSSL を使用したプライベート CA の作成
プライベート証明機関 (CA) は、シナリオで内部ネットワーク内のエンティティーを検証する必要がある場合に役立ちます。たとえば、管理下にある CA によって署名された証明書に基づく認証を使用して VPN ゲートウェイを作成する場合、または商用 CA への支払いを希望しない場合は、プライベート CA を使用します。このようなユースケースで証明書に署名するために、プライベート CA は自己署名証明書を使用します。
前提条件
-
sudo
を使用して管理コマンドを入力するための root
権限または権限がある。そのような特権を必要とするコマンドは、#
でマークされています。
手順
CA の秘密鍵を生成します。たとえば、次のコマンドは、256 ビットの楕円曲線デジタル署名アルゴリズム (ECDSA) キーを作成します。
openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out <ca.key>
$ openssl genpkey -algorithm ec -pkeyopt ec_paramgen_curve:P-256 -out <ca.key>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow キー生成プロセスの時間は、ホストのハードウェアとエントロピー、選択したアルゴリズム、およびキーの長さによって異なります。
前のコマンドで生成された秘密鍵を使用して署名された証明書を作成します。
openssl req -key <ca.key> -new -x509 -days 3650 -addext keyUsage=critical,keyCertSign,cRLSign -subj "/CN=<example_CA>" -out <ca.crt>
$ openssl req -key <ca.key> -new -x509 -days 3650 -addext keyUsage=critical,keyCertSign,cRLSign -subj "/CN=<example_CA>" -out <ca.crt>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された
ca.crt
ファイルは、10 年間、他の証明書の署名に使用できる自己署名 CA 証明書です。プライベート CA の場合、<example_CA>
をコモンネーム (CN) として任意の文字列に置き換えることができます。CA の秘密鍵に安全なアクセス許可を設定します。次に例を示します。
chown <root>:<root> <ca.key> chmod 600 <ca.key>
# chown <root>:<root> <ca.key> # chmod 600 <ca.key>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
自己署名 CA 証明書をクライアントシステムのトラストアンカーとして使用するには、CA 証明書をクライアントにコピーし、クライアントのシステム全体のトラストストアに
root
として追加します。trust anchor <ca.crt>
# trust anchor <ca.crt>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、共有システム証明書の使用 の章を参照してください。
検証
証明書署名要求 (CSR) を作成し、CA を使用して要求に署名します。CA は、CSR に基づいて証明書を正常に作成する必要があります。次に例を示します。
openssl x509 -req -in <client-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <client-cert> -out <client-cert.crt>
$ openssl x509 -req -in <client-cert.csr> -CA <ca.crt> -CAkey <ca.key> -CAcreateserial -days 365 -extfile <openssl.cnf> -extensions <client-cert> -out <client-cert.crt> Signature ok subject=C = US, O = Example Organization, CN = server.example.com Getting CA Private Key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細は、「OpenSSL でプライベート CA を使用して CSR の証明書を発行する」 を参照してください。
自己署名 CA に関する基本情報を表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 秘密鍵の一貫性を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow