0

Apache2 の設定について助けが必要です。

このサーバーでホストされている SSL ではないサイトと、SSL である 1 つのサイトがあります。問題は、サーバーでホストされているサイトの https:// を入力すると、SSL でホストされているサイトが証明書エラーで表示されることです。

このサイトが表示されないようにするにはどうすればよいですか?

 <IfModule mod_ssl.c>
 NameVirtualHost *:443
 <VirtualHost *:443>
    ServerAdmin miked@********.ca
    ServerName www.********.com
  CheckSpelling on
  CheckCaseOnly on


    DocumentRoot /var/vhosts/********.com
    <Directory />
            Options FollowSymLinks
            AllowOverride All


    </Directory>
    <Directory /var/vhosts/*******.com>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined


    LogLevel error

    CustomLog ${APACHE_LOG_DIR}/*******-ssl_access.log combined env=!chat
    ErrorLog ${APACHE_LOG_DIR}/*******-ssl-error.log


    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #SSLCertificateFile    /etc/apache2/ssl/apache.crt


    SSLCertificateFile      /etc/apache2/ssl/lubrigard.crt
    SSLCertificateKeyFile   /etc/apache2/ssl/apache.key
    SSLCertificateChainFile /etc/apache2/ssl/digicertCA.crt

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </Directory>

    BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
    # MSIE 7 and newer should be able to use keepalive
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

 </VirtualHost>
 </IfModule>
4

1 に答える 1

2

9 か月遅すぎることはわかっていますが、私は決して apache 構成の専門家ではありませんが、

この問題の本当の解決策は、サーバーに割り当てられた追加の IP アドレスを取得し、SSL vhost がその IP アドレスでのみリッスンすることだと思います。

少なくとも通常のアプリケーションでは (つまり、Server Name Indicationを使用して IE 7 または 8 で Windows XP 以下のユーザーを排除する準備ができていない場合は、こちらこちらを参照してください)、SSL 証明書ごとに個別の IP アドレスが必要です。ホスト名が渡される前にハンドシェイクが発生するため、クライアントによって IP アドレスのみが提供されます。これを回避する他のクリーンな方法はありません。ホスト名の不一致は、vhost エントリで他の処理が行われるまでに発生するためです。 、訪問者は SSL 証明書が実際に有効なドメイン名を確認できます。

ただし、人々が「同意する」または「例外を追加する」をクリックして警告を回避したら、このようなブロックを SSL vhost に追加して、人々を適切なドメインにリダイレクトすることができます。これは、ドメイン名自体に対してのみテストされ、その中のページやディレクトリに対してはテストされませんでした。(ここで与えられた最初の例から部分的に取得)

 <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteCond %{HTTP_HOST}   !^(www\.)?********\.com [NC]
      RewriteCond %{HTTP_HOST}   !^$
      RewriteCond %{HTTP_HOST}   ^(.*)$
      RewriteRule ^/(.*)         http://%1/$1 [L,R]
  </IfModule>

...ここで、アスタリスクは、sslを持つドメイン名を表します。これにより、他のすべてのリクエストが同等の HTTP に書き換えられますが、ssl ドメインへのリクエストは変更されません。

別の IP アドレスを取得できず、訪問者によっては、おそらく SNI が最適です。

たぶん、Serverfault の関係者はもっと知っているでしょうか?

于 2014-01-27T15:46:23.140 に答える