無料のサーバー証明書「Let’s Encrypt」は、コマンドで簡単に取得・更新でき、とても便利に使わせてもらっていますが、複数のホスト名に対応するワイルドカード証明書は作成できません。
そのかわりに、Let’s EncryptではSAN(Subject Alternative Name)対応の証明書を作成できます。SAN対応証明書は、ワイルドカード証明書に比べ自由度は下がりますが、複数のドメイン名に対応するのに十分有効な方法です。
ワイルドカード証明書は「*.example.com」で発行が可能で、サブドメインが増えても同一の証明書で対応できますが、SANの場合は、証明書発行時にすべてのドメイン名(aaa.example.com、bbb.example.comなど)を指定する必要があり、後からドメイン名を増やしたい場合は、証明書の再発行が必要になります。
そこでここでは、CentOS 7環境でLet’s EncryptのSAN対応の証明書を発行する手順を紹介します。
目次
SAN対応の証明書発行手順
証明書を発行・更新するために必要なツール「certbot」はすでにマシンにインストールされていることを前提とします。
「certbot」のインストール方法は、以下の投稿をご覧ください。

証明書発行
発行したいすべてのドメイン名を指定して、コマンドを実行します。
ここでは、以下の2つのドメイン名を指定する場合のコマンドを例示しています。
ドメイン名 | ドキュメントルート |
---|---|
aaa.example.com | /var/www/wordpress |
bbb.example.com | /var/www/wordpress2 |
# certbot certonly --webroot -w /var/www/wordpress -d aaa.example.com -w /var/www/wordpress2 -d bbb.example.com --email admin@example.com --agree-tos
一番先に指定したドメイン名が「Common Name」として使用されます。
すでにcertbotで取得済みの証明書を、過去に取得したすべてのドメイン名と新たに追加するドメイン名(複数可)に対して有効な証明書に更新するには、オプション「--expand」を付加します。
動作確認
発行された証明書をWebサーバーに設定後、ブラウザでサイトへアクセスし、証明書を確認してみてください。
証明書の詳細フィールド「サブジェクト代替名」に証明書発行時に指定したドメイン名が表示されていればOKです。
あとがき
ワイルドカード証明書作れなくても、全然問題ない感じです。