web-dev-qa-db-ja.com

sslはウェブサイトのみを指定します

サーバー用にSSL証明書を作成しましたが、特定のWebサイトにのみSSLを使用できます。

たとえば、/var/www Webフォルダーがたくさんあり、「A」のWebサイトでHTTPSを使用し、その他のWebサイトでHTTPSを使用しないようにします。

設定方法

1
ranggadablues

Apache wiki には SNIを使用した仮想ホストでのSSL に関する素敵なページがあります。それらは、セットアップをステップごとに説明します。ここで主なポイントを書きます。

OpenSSLバージョン0.9.8f以降が必要です。 Ubuntu Hardy Heron(8.04)以降を使用している場合、正しいバージョンを取得できます。さらに、OpenSSLでTLSExtensionsを有効にする必要があります。これは、バージョン0.9.8k(Lucid、10.04)以降のデフォルトのケースです。 ApacheバージョンにはSNIサポートが必要です。 error.logをご覧ください:

[警告]初期化:名前ベースのSSL仮想ホストは、TLSサーバー名表示サポートのあるクライアントでのみ機能します(RFC 4366)

上記のメッセージが見つかった場合、SNIは有効になっており、以下のメッセージが表示された場合、SNIは組み込まれていません。

名前ベースの仮想ホストをSSLと組み合わせて使用​​しないでください

デフォルトの構成では、TLSv1がサポートされているプロトコルとして設定されている必要があります。変数SSLProtocolを探します。設定が見つからない場合は、次を追加できます。

SSLProtocol All -SSLv2

これにより、SSLバージョン2ではなく、SSLおよびTLSのすべての既知のフレーバーのサポートが追加されます。

仮想ホストをセットアップし、SSLサポートを有効にする必要があります(Sudo a2ensite sslとApacheの再起動):

<virtualhost *:443>
        SSLEngine On
        SSLCertificateFile /path/to/your/sslcert
        DocumentRoot /path/your/webcontent
</virtualhost>

さらに、Apacheまたはvhost構成でSSLStrictSNIVHostCheck onを設定します。これで、Apacheを再起動でき、おそらくSSLがサポートされます。ただし、SNIには多くの落とし穴があります。エラーが発生した場合は、error.logを確認してください。何がうまくいかなかったのかをアドバイスするかもしれません。

Apacheドキュメントには、いくつかの SSLサポートに関する詳細な説明 があります。

1
qbi