2016-01-12

1つのSSLサーバ証明書に複数のFQDNを追加する方法

はじめに

SSLサーバ証明書のフィールドにはSubject Alternate Names(SANs)という項目が存在します。

ここに、複数のFQDNを指定してあげることによって、1つの証明書だけで複数のFQDNに拡張することが出来ます。

ちなみに、認証局によってはSubject Alternate Namesがダメなところもあるので、要注意です。

さっそくSANsな証明書を作りましょう

環境 

CentOS 7.2(OpenSSL 1.0.1e-fips 11)

手順

今回は楽に発行したいので、直接openssl.cnfを編集しています。あと、メモ用に書いているので、かなり雑です。

openssl.cnfに以下を追加

[ req ]
req_extensions = v3_req

[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName          = @alt_names

[alt_names]
# 追加したいFQDNを以下の形で書いていく
DNS.1   = hogehoge.jp
DNS.2   = www.hogehoge.jp
DNS.3   = www2.hogehoge.jp

あとはCSRを作成するだけ

openssl req -new -key ssl.key -sha256 -out key.csr

念のために確認

openssl req  -noout -text -in key.csr
(省略)
Requested Extensions:
            X509v3 Subject Alternative Name:
                DNS:hogehoge.jp, DNS:www.hogehoge.jp, DNS:www2.hogehoge.jp
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment

これで、作成完了です。簡単でしょ?