GNU/Linux >> Linux の 問題 >  >> Linux

SNIを使用してApacheで複数のSSL証明書をホストする

Server Name Identification(SNI)は、Secure Socket Layer(SSL)およびTransportLayer Security(TLS)プロトコルの拡張であり、単一の一意のインターネットプロトコル(IP)アドレスで複数のSSL証明書をホストできるようにします。この記事では、SNIを使用してApache®で複数のSSL証明書をホストする方法について説明します。

前提条件

SNIを使用するには、サーバーが次の要件を満たしている必要があります。

  • Apachev2.2.12以降
  • OpenSSL®v0.9.8j以降
  • mod_sslをインストールする必要があります

次のオペレーティングシステムは、追加の変更なしでSNIをサポートします。

  • RedHat®EnterpriseLinux®(RHEL)6以降
  • Fedora®10以降
  • CentOS®6
  • Debian®6以降
  • Ubuntu®10.04以降

次のオペレーティングシステムでは、Apache、OpenSSL、およびmod_sslを適切なバージョンでコンパイルする必要があります。

  • Red Hat Enterprise Linux 5
  • Centos 5

mod_sslがインストールされていることを確認してください

SNIを使用する前に、次のコマンドを実行してmod_sslがインストールされていることを確認してください。

RHEL、CentOS、Fedora

yum list installed | grep mod_ssl

DebianおよびUbuntuオペレーティングシステム

dpkg -s apache2.2-common

mod_sslがインストールされていない場合は、次のコマンドを使用してインストールします。

RHEL、CentOS、Fedora

yum install mod_ssl

DebianおよびUbuntuオペレーティングシステム

DebianおよびUbuntuオペレーティングシステムの場合、次のコマンドを使用してmod_sslをインストールします。

 apt-get install apache2.2-common

次に、a2enmod ssl; /etc/init.d/apache2 reload

vhostsを設定する

ルートApache構成ファイル( apache2.conf )に次の行を追加します またはhttpd.conf ):

# Ensure that Apache listens on port 443
Listen 443

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
SSLStrictSNIVHostCheck off

各サイトのvhost構成ファイルで、仮想ホスト構成を追加する必要があります。次の例のようになります。

最初の仮想ホスト:

<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

</Virtual Host>

2番目の仮想ホスト:

<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

</Virtual Host>

次のコマンドを使用して、自己署名証明書を使用して構成をテストできます。

openssl req -new -nodes -keyout mykey.key -out mycert.cer -days 3650 -x509

共通名でドメイン名を指定します セクションをクリックしてから、Apacheを再起動します。

サポートされているブラウザ

SNIはほとんどのブラウザでサポートされていますが、InternetExplorer®6やWindows®XP®ブラウザなどの古いブラウザはSNIをサポートしていません。

デスクトップブラウザ

  • InternetExplorer7以降

  • Firefox®2以降

  • TLS1.1が有効になっているOpera8

  • GoogleChrome®:

    • Chrome6以降のWindowsXPでサポート
    • Vista以降でデフォルトでサポートされています
    • Chromeバージョン5.0.342.0以降のOSX10.5.7でサポート
  • Chromium®11.0.696.28以降

  • Safari 2.1以降(OS X10.5.6以降またはWindowsVista以降が必要です)。

注: WindowsXP上のInternetExplorerのバージョンはSNIをサポートしていません。

モバイルブラウザ

  • iOS4.0以降のモバイルSafari
  • Android 3.0(Honeycomb)以降
  • WindowsPhone7以降
サポートされていないブラウザ

サポートされていないブラウザは、Apacheがロードする最初の仮想ホストのSSL証明書をロードします。代わりに、Apache構成ファイル( apache2.conf )に次の行を追加することで、403エラーを表示できます。 、または httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Apacheでmod_clusterを使用する

  2. Apache – * .local Ssl証明書を作成しますか?

  3. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  1. Linuxサーバーでnginxを使用してサブドメインまたは複数のドメインをホストする方法

  2. IISSNIの概要

  3. 仮想ホストを使用して複数のドメインにサービスを提供

  1. Apache2.4でプロキシバックエンドとしてHTTPSを使用する

  2. 1つのIPアドレスを使用してApacheを使用するCentOSVPSで複数のSSL証明書を設定する方法

  3. 単一ホスト上の複数の glibc ライブラリ