マルチドメインSSL証明書(SANまたはUCC証明書とも呼ばれる)は、1つの証明書で複数の異なるドメイン名を保護します。example.com、example.org、myapp.ioに別々の証明書を管理する代わりに、1つのSAN証明書ですべてをカバーします。
これは1つのドメインのサブドメインをカバーするワイルドカード証明書とは異なります。SAN証明書は全く異なるドメインをカバーできます。
SAN証明書の仕組み
SANはSubject Alternative Nameの略で、証明書が有効な追加のドメイン名をリストするX.509証明書標準のフィールドです。ブラウザがサーバーに接続すると、リクエストされたドメインがいずれかのSANエントリと一致するかチェックします。
マルチドメイン証明書の内部構造:
Certificate for:
CN: example.com
SAN: example.com
SAN: www.example.com
SAN: example.org
SAN: api.myapp.io
4つのドメインすべてが1つの証明書と1つの秘密鍵で保護されます。ブラウザは、リクエストされたホスト名がいずれかのSANエントリと一致すれば接続を受け入れます。
制限: Let’s Encryptは証明書あたり最大100のSANエントリをサポートしています。商用認証局は異なり、250以上を許可するものもあれば、エントリごとに課金するものもあります。
一般的なユースケース
複数のブランドドメイン
brandname.com、brandname.co.uk、brandname.deを運営している場合。1つのSAN証明書で3つすべてをカバーし、地域ごとに別々の証明書を管理する必要がありません。
ドメイン + wwwバリアント
最も一般的なSANの使用法:example.com + www.example.com。ほとんどの証明書は両方を自動的に含みます。GetHTTPSはベアドメインを入力するとwwwバリアントの追加を促します。
異なるドメインのマイクロサービス
APIがapi.company.com、ドキュメントがdocs.company.com、マーケティングサイトがcompany.comにある場合。SAN証明書で3つすべてを保護します。すべてサブドメインなら、ワイルドカードの方がシンプルかもしれません。
ドメイン間の移行
olddomain.comからnewdomain.comに移行する場合、両方をカバーするSAN証明書があれば、移行中に2つの別々の証明書を維持せずに両方のドメインでHTTPSを提供できます。
SAN vs ワイルドカード
| SAN(マルチドメイン) | ワイルドカード | |
|---|---|---|
| カバー | 特定のリストされたドメイン | 1つのドメインのすべてのサブドメイン |
| クロスドメイン | ✅ example.com + other.com | ❌ 1つのベースドメインのみ |
| 新しいドメイン | 新しい証明書が必要 | 新しいサブドメインは自動的にカバー |
| チャレンジタイプ | HTTP-01またはDNS-01 | DNS-01のみ |
| 証明書サイズ | SANエントリごとに増加 | 固定 |
| ユースケース | 複数の異なるドメイン | 1つのドメインの多くのサブドメイン |
| Let’s Encrypt制限 | 証明書あたり100名 | 証明書あたり1ワイルドカード(SANと組み合わせ可能) |
両方を組み合わせられます: 1つの証明書にexample.com、*.example.com、other.comをSANエントリとして含めることができます。ベアドメイン、すべてのサブドメイン、追加ドメインを1つの証明書でカバーするのは一般的です。
GetHTTPSでマルチドメイン証明書を取得する
- gethttps.com/app/setupにアクセス
- カバーしたいすべてのドメインを入力:
example.com、www.example.com、example.org - 各ドメインのチャレンジを完了 — HTTP-01(ファイル配置)またはDNS-01(TXTレコード追加)
- GetHTTPSはLet’s Encryptに送信する前に各チャレンジを事前チェック
- すべてのドメインをカバーする1つの証明書をダウンロード
各ドメインは独自の検証が必要です。Let’s Encryptが各ドメインを独立して制御していることを確認する必要があるためです。GetHTTPSは順番に処理します — 1つを検証し、次に進みます。
例:3ドメイン、混合チャレンジ
| ドメイン | チャレンジタイプ | 作業内容 |
|---|---|---|
example.com | HTTP-01 | サーバーにファイルを配置 |
www.example.com | HTTP-01 | 同じサーバー、同じプロセス |
example.org | DNS-01 | TXTレコードを追加(別のDNSプロバイダー) |
3つすべてがパスすると、3つすべてをカバーする1セットの証明書ファイル(fullchain.pem、privkey.pem)が得られます。
マルチドメイン証明書のインストール
インストールは単一ドメイン証明書と同じです。サーバーは証明書にいくつのSANがあるか気にしません — 同じファイルを使用します。
Nginx:
server {
listen 443 ssl http2;
server_name example.com www.example.com example.org;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
}
Apache:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com example.org
SSLEngine on
SSLCertificateFile /etc/ssl/cert.pem
SSLCertificateKeyFile /etc/ssl/privkey.pem
SSLCertificateChainFile /etc/ssl/chain.pem
</VirtualHost>
ドメインが別のサーバーを指している場合、各サーバーに同じ証明書ファイルをインストールしてください。証明書はどのサーバーが提示しても、リストされたすべてのドメインに有効です。
よくある質問
SAN証明書はより高額ですか?
Let’s Encryptでは、いいえ。GetHTTPSで最大100ドメインを1つの無料証明書に含められます。一部の商用認証局は追加SANエントリごとに$10-50を課金します。
すべてのドメインが同じサーバーにある必要がありますか?
いいえ。証明書はどのサーバーでも動作します。リストされたドメインのいずれかを提供する必要がある各サーバーに同じfullchain.pemとprivkey.pemをインストールしてください。
既存のSAN証明書にドメインを追加できますか?
直接はできません — 発行された証明書は変更できません。すべてのドメイン(既存 + 新規)を含む新しい証明書をリクエストする必要があります。GetHTTPSなら数分で完了します。
別々の証明書を使うべき場合は?
以下の場合は別々の証明書を使用してください:
- 異なるチームが異なるドメインを管理(別の鍵 = 別のアクセス制御)
- 異なる更新スケジュールが必要
- 分離が重要 — 1つの鍵が侵害されても他のドメインに影響しない
- 100名を超える — 複数の証明書に分割
SANは証明書サイズにどう影響しますか?
各SANエントリは証明書に約30-50バイトを追加します。100エントリでは証明書が数KB大きくなります。TLSハンドシェイク速度への影響はごくわずかです。
SANとUCCの違いは何ですか?
UCC(Unified Communications Certificate)はマルチドメインSAN証明書のMicrosoftの名称で、元々ExchangeとOffice Communications Server向けに設計されました。技術的には同じもの — 複数のSANエントリを持つ証明書です。