httpsの使用を要求する(そして通常のhttpを拒否する)にはMediaWikiのインストールが必要です。私は2時間探しました。設定$wgServer
が機能せず、ポート80を閉じることも機能しhttpd.conf
ません。
私のwikiインストールはApacheサーバーで実行されます。
私はUbuntu14でこれを行ったばかりです(今日初めてなので、もっと良い方法があるかもしれません!)
$wgServer = "//myhostname.com/mediawiki";
これにより、サーバー名が「プロトコル相対」になり、HTTPまたはHTTPSのいずれかで機能します。おそらくhttps://...に設定することもできます。
次に、すべてのHTTPトラフィックをHTTPSにリダイレクトするようにapache2を設定します。
デフォルトのSSL構成を編集します(これは、デフォルトのサイトを使用していることを前提としています)。
sudo vim /etc/apache2/sites-available/default-ssl.conf
次のようなものを読むには:
# Redirect HTTP to HTTPS
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
# Normal HTTPS config for default site
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ServerAdmin admin@example.com
ServerName example.com
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
まだ有効にしていない場合は、デフォルトのSSLサイトを有効にします(これにより、サイト対応からサイト利用可能へのリンクが作成されます)
sudo a2ensite default-ssl
/etc/apache2/ssl/apache.pem
これは、上記の構成に配置され、参照されているSSL証明書(自己署名証明書を生成したもの)を既に取得していることを前提としています/etc/apache2/ssl/apache.key
。
最後に、apacheを取得して新しい構成を使用します。
sudo service apache2 restart
(またはreload
十分かもしれません)
私の答えは、ポート443でhttpsトラフィックをリッスンしているApacheがすでにあることを前提としています。そうでない場合は、最初にそれを設定する必要があります。手順は、実行しているオペレーティングシステムによって異なります。
これをApacheで実行します。私のUbuntuシステムに/etc/apache2/ports.conf
は、次の行を含むファイルがあります。
Listen 80
その行を含む同様の構成ファイルがあります。それを削除し、Apacheを再起動することを忘れないでください。
これを実現する別の方法は、サイトの一部へのHTTPアクセスを許可するより複雑なApache構成を可能にするもので、MediaWikiディレクトリ内の.htaccess
ファイルを使用することです。これを試して:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Webサーバーが一般的にサポートするように設定されている場合、MediaWikiの構成ファイルにhttps
次の行を挿入または更新します。LocalSettings.php
$wgForceHTTPS = true;
http
これは、を使用してすべてのクエリをhttps
リダイレクトし、Webサーバー構成のリダイレクトルールの代わりになります。
参照: