web-dev-qa-db-ja.com

SSLの構成

Drupal 6を使用していて、ApacheサーバーのSSL証明書(独自の認証局を使用して)構成をすでに設定しており、Drupal 。htaccessファイル。

RewriteCond %{SERVER_PORT} !^443$  
RewriteRule ^test/home https://localhost/test/home [R=301,L]

http:// test/home にアクセスしようとすると、正しく https:// test/home にリダイレクトされますが、404エラーが表示されます。

見つかりません

リクエストされたURL/test/homeがこのサーバーで見つかりませんでした。
Apache/2.2.9(Ubuntu)PHP/5.2.6-2ubuntu4.6 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server at localhost Port 443

さらに、セキュアページモジュールでは、セキュアページを有効にすることができません。

enter image description here

設定に問題はありますか?案内してください。

5
ArK

これを自分のサーバーでホストしていると思いますか?同じ問題がありました。最終的に、ApacheでのVhostの定義に問題が生じました。 httpおよびhttpsアクセス用の個別のvhost定義があります(私はApache忍者ではないので、これは最も効率的な方法ではないかもしれませんが、うまくいきました)。 SSL仮想ホストが通常の仮想ホストと同じディレクトリを指していることを確認してください。サーバー上の別のディレクトリからサイトをプルしようとしているようです。

それを確認したら、「このテストが失敗した場合は、ここに移動してください」のリンクをクリックします。

また、Secure Pagesモジュールを使用している場合は、.htaccessの書き換えを使用する必要はありません。

5
Chaulky

Chaulkyが指摘するように、80と443には別々のvhost定義があります。 SSLを扱う場合、Apacheの設定はもう少し複雑です。 vhostsは次のようになります。


<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName www.example.com
  ServerAlias example.com
  DocumentRoot /var/www/drupal6

  <Directory /var/www/drupal6>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

  ErrorLog /var/log/Apache2/error_example.com.log
  CustomLog /var/log/Apache2/access_example.com.log combined
  ServerSignature On

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn
</VirtualHost>

<VirtualHost *:443>
  ServerAdmin [email protected]
  ServerName example.com
  ServerAlias www\.example\.com
  DocumentRoot /var/www/drupal6

  <Directory /var/www/drupal6>
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/log/Apache2/error_example.com.log
  CustomLog /var/log/Apache2/access_example.com.log combined
  ServerSignature On

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn

  # Put SSL stuff in here
</VirtualHost>

つまり、ポート80とポート443に1つずつあります。

Ports.confをチェックして、次のようなものがあることを確認してください:



  Listen 443

正当な理由がない限り、securepagesモジュールを完全に廃止し、サイト全体をSSLモードで実行します。 .htaccessのルールを見ると、それがとにかくやろうとしていることです。

すべての非セキュアトラフィックをセキュアにリダイレクトしたい場合は、このバージョンの非セキュアvhostを使用できます。


<VirtualHost *:80>
  ServerAdmin [email protected]
  ServerName www.example.com
  ServerAlias example.com
  DocumentRoot /var/www/drupal6
  Redirect / https://www.example.com

  ErrorLog /var/log/Apache2/error_example.com.log
  CustomLog /var/log/Apache2/access_example.com.log combined
  ServerSignature On

  # Possible values include: debug, info, notice, warn, error, crit,
  # alert, emerg.
  LogLevel warn
</VirtualHost>

少し長いですが、申し訳ありませんが、これがあなたが探しているものです。

5
Chris Cohen