OpenSSL-ワンラインでSAN対応のCSRを発行する

以前クライアント証明書の発行を記事にしましたが、最近のサーバ証明書はSAN(SubjectAltName)への対応が必須とのことで、OpensSSLでのサーバ証明書発行に関する記事を記載します。

CAのコンフィグをサーバ証明書発行用にする。

既にCAが構築してある前提で話を進めます。
証明書の用途をServerにします。openssl.cnfの以下の場所を編集してください。

[ usr_cert ]
(中略)
nsCertType=Server
#ほかのnsCertTypeの値はコメントアウトしておく。

また、CAが証明書を発行する際にSANを含められるよう、以下の値のコメントアウトを外しておきましょう。

# copy_extensions = copy
copy_extensions = copy

上記の値は外さなくてもCSRは発行できますが、CAで証明書を作成した場合にSANの値が無視されます。

CSRを作成する。

SANをCSRの情報に付与する場合は、「-addext」オプションを使います。
以下に設定例を記載します。-subjに通常のパラメータを設定した後、-addextでSANを付与していることがお分かりいただけると思います。

openssl req -new -key /etc/pki/CA/private/server_key.pem -out /etc/pki/CA/csr/server_csr.pem -subj="/CN=test.local/OU=DummyUnit/O=DummyOrg/L=hogehoge/ST=Tokyo/C=JP" -addext="subjectAltName=DNS:test.local"

証明書の発行自体はCSRによる通常の証明書発行手順で発行できます。

急ぎで書いた文章のため、粗くて申し訳ありませんが以上となります。