同じIPとフォルダのApacheマルチドメインとマルチSSL

同じIPとフォルダのApacheマルチドメインとマルチSSL

複数のドメインを持つサイトに同じIPと同じフォルダを使用し、各ドメインに別々のSSL証明書を使用する必要があるシステムを構築しています。また、サイトが独自に別のドメインを処理できるため、リダイレクトや配信は望ましくありません。

とても好き

site1.example.com 192.168.0.2:443 /var/www/html

site2.example.com 192.168.0.2:443 /var/www/html

site3.example.com 192.168.0.2:443 /var/www/html

site4.example.com 192.168.0.2:443 /var/www/html

hosts私はUbuntu 14.04とApache2を使用していますが、ファイルをどのように見つけるのかわかりません。誰でも例を挙げることができますか?

ベストアンサー1

以前は、単一のIPアドレスでホストされている複数のサイトで複数のSSL証明書を使用することは困難でした。なぜなら、このウェブサイトの管理者は別のIPアドレスを購入するためにもっと費用を費やす必要があるからです。ただし、サーバー名インジケータ(SNI)の助けを借りて、Apacheの単一のインターネットプロトコルで異なるSSL証明書を使用して複数のサイトを保護できるようになりました。

Apacheを使用してSNIを設定します。

まず、.confを新しくバックアップしてください。

上記の機能を実装するには、サーバー上に仮想ホストを作成する必要があります。新しい仮想ホスト用の新しい .conf ファイルを作成するか、既存のファイルを使用できます。新しい .conf ファイルを作成する場合は、既存の .conf ファイルに次の行を追加する必要があります。

Include my_other_site.conf

これで、ポート*:443を使用してNameVirtualHostディレクティブにパブリックIPアドレスを一覧表示します。次に、ルート証明書、中間証明書、およびSSLファイルが各Webサイトを指すようにする必要があります。詳しくは下記の例をご覧ください。

NameVirtualHost *:443

<VirtualHost *:443>
 ServerName site1.domain.com 
 DocumentRoot /var/www/site
 SSLEngine on
 SSLCertificateFile /path/to/site1_domain_com.crt
 SSLCertificateKeyFile /path/to/site1_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

<VirtualHost *:443>
 ServerName site2.domain.com
 DocumentRoot /var/www/site2
 SSLEngine on
 SSLCertificateFile /path/to/site2_domain_com.crt
 SSLCertificateKeyFile /path/to/site2_domain_com.key
 SSLCertificateChainFile /path/to/CA.crt
</VirtualHost>

これはうまくいきます。ただし、私の考えでは、単一のSAN(サブジェクト代替名)SSLを取得できますが、単一の証明書で複数のサイトを保護できるため、異なるサイトに異なるSSL証明書を使用しないでください。保護する必要がある1つのドメインの下にサブドメインのみがある場合は、費用対効果の高いオプションであるワイルドカードSSLを選択できます。ワイルドカード証明書を発行するだけで、*.domain.comアスタリスク(*)を含むすべてのエントリ(最初のレベルのみ)が上書きされます。

ワイルドカードSSLとSAN証明書の両方がコストと管理上の困難を減らします。読むこの記事ワイルドカードSSLとSANの違いを知りたい場合。

おすすめ記事