DigiCert証明書の正規代理店ソフィア総合研究所株式会社
DigiCert サーバー証明書利用団体
  1. ホーム
  2. サポート
  3. インストール方法
  4. Apache SNI

Apache SNIで、1IP上の複数サイトでSSL証明書を利用する

Server Name Indication (SNI)

かつては、IPアドレスとSSLサーバ証明書は1対1である必要があり、1IPアドレス上の複数のサイトでは、ドメイン(Webサイト)ごとに独自の証明書を利用することはできないとされていました。
しかし、Apache v2.2.12、OpenSSL v0.9.8j以降で利用可能な「SNI (Server Name Indication)」と呼ばれる技術を使うことで、1IP上で複数のサーバー証明書を利用することができるようになりました。

SNIが正常に機能するためには、Webサーバーだけでなく、ブラウザもSNIに対応していなければなりません。
主要なブラウザのほとんどがSNI対応済みですが、古いブラウザには一部未対応のものもあります。詳しくは以下のリストを参照してください。

ApacheでSNIを設定する

ApacheでSNIを設定するためには、基本となるApacheへのSSLサーバ証明書のインストール方法を理解している必要があります。
詳細は以下のページをご確認ください。

SNIで2つ目以降に追加するサーバー証明書を利用可能にするためには、追加のサーバー証明書を利用するVirtual Host設定をApacheの .confファイルに追加する必要があります。

追加すべきファイルは httpd.conf, ssl.conf, httpd-ssl.conf, virtual-host.conf 等環境によって異なります。
現在のVirtual Host設定をどのファイルで行っているかを確認し、設定ファイルを決定してください。

新たにmy_other_site.confのような名称のファイルを作成し、そこでVirtual Host設定を行うこともできます。その場合は既存のhttpd.confファイルに次の行を追加します。

Include my_other_site.conf

Virtual Host設定は <VirtualHost *:443> で始めます。
これは、「すべてのIPの443番ポートについてのVirtualHost指定です」という宣言です。IPを特定する指定や、443以外のポートを指定することもできます。

以下の www.yoursite.com、www.yoursite2.com の例のように、それぞれのVirtualHostブロック内で ServerNameを指定し、SSLCertificateFile、SSLCertificateKeyFile、SSLCertificateChainFileでそれぞれの証明書ファイルの位置を指します。

NameVirtualHost *:443

<VirtualHost *:443>
ServerName www.yoursite.com
DocumentRoot /var/www/site
SSLEngine on
SSLCertificateFile /path/to/www_yoursite_com.crt
SSLCertificateKeyFile /path/to/www_yoursite_com.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>

<VirtualHost *:443>
ServerName www.yoursite2.com
DocumentRoot /var/www/site2
SSLEngine on
SSLCertificateFile /path/to/www_yoursite2_com.crt
SSLCertificateKeyFile /path/to/www_yoursite2_com.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>

.confファイルを保存したら、Apacheを再起動してください。
正しく再起動できない・証明書エラーが発生する場合は、以下のページを参照してください。

SNIでは、利用する証明書数の制限はありません。必要分VirtualHost指定を追加できます。

SSL サーバ証明書とは?
30日間テスト証明書
30日間返金保証制度あり!
コードサイニング証明書
ドキュメントサイニング証明書
デジタル証明書ニュース
HTTPS入門
digicert.comトピックス&ニュース