同じ IP アドレスで複数の SSL ドメインを持つことはできません。
環境
クライアントが https Web サイトに接続すると、すべての通信はサイトの公開鍵 (ssl 証明書) で暗号化されます。公開鍵に関連付けられた秘密鍵のみが http 要求を復号化できます。基本的にそれがhttpsの仕組みです。
そのため、仮想ホストで、SSL Web サイトごとに証明書とキーを定義します。
SSLCertificateFile /etc/apache2/ssl/example2.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example2.com.key
VirtualHost Name ベースと SSL
VirtualHost name baseを使用すると、Apache がクライアント リクエストを受信すると、サーバーはリクエストを読み取り、どのドメイン名がリクエストされているかを調べます。ドメイン名が識別されると、apache はvirtuahost命令を読み取り、適切な Web サイトを返します。
Apache が SSL リクエストを受信すると、システムはメッセージを復号化できません。これは、Apache が Virtualhost で定義された SSLCertificateKeyFile を使用する必要があるためですが、どの仮想ホストを使用するかを知るには、メッセージを復号化できる必要があるためです ....リクエストの処理方法がわからない場合、システムは最初に処理された仮想ホストを返します。
そのため、例で使用されているVirtualHost ip baseを使用する必要があります
。Apache で複数の SSL 証明書をホストする
2 つの ip 1.1.1.1 と 2.2.2.2 があります。
NameVirtualHost 1.1.1.1:443
NameVirtualHost 2.2.2.2:443
<VirtualHost 1.1.1.1:443>
ServerName www.domain1.com
...
...
</VirtualHost>
<VirtualHost 2.2.2.2:443>
ServerName www.domain2.com
...
...
</VirtualHost>
VirtualHost 名ベースと SSL ワイルドカード証明書
秘密鍵と公開鍵 (ssl 証明書) がすべてのドメインで同じである場合、Apache は通信を復号化できます。この状況は、ドメインにワイルドカード証明書を使用する場合にのみ追加されます。たとえば、*.domain.com にワイルドカードを使用している場合、VirtualHost の名前ベースを次のように定義できます。
NameVirtualHost 1.1.1.1:443
<VirtualHost 1.1.1.1:443>
ServerName foo.domain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wildcard.domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/wildcard.domain.com.key
...
...
</VirtualHost>
<VirtualHost 1.1.1.1:443>
ServerName bar.domain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/wildcard.domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/wildcard.domain.com.key
...
...
</VirtualHost>
ドメインに関係なく、apache は同じ秘密鍵を使用して通信を復号化し、システムが適切な VirtualHost 設定を選択できるようにするため、この構成は機能します。
良い1日を。