让MediaWiki在所有页面上都要求HTTPS的最简单方法是什么?

时间:2012-06-12 13:22:28

标签: apache https mediawiki

我需要安装MediaWiki才能要求使用https(并拒绝普通的http)。我花了2个小时看。设置$wgServer不起作用,关闭httpd.conf中的端口80也不起作用。

我的wiki安装在Apache服务器上运行。

3 个答案:

答案 0 :(得分:7)

我刚刚在Ubuntu 14上完成了这项工作(今天是第一次,所以可能有更好的方法!)通过设置

$wgServer = "//myhostname.com/mediawiki";

这使服务器名称"协议相对"所以它适用于HTTP或HTTPS。您可以将它设置为https:// ...但是。

然后配置apache2以将所有HTTP流量重定向到HTTPS:

编辑默认的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

这假定您已经获得了SSL证书(我生成了一个自签名证书),该证书已放置在上面配置中引用的/etc/apache2/ssl/apache.pem/etc/apache2/ssl/apache.key中。

最后让apache使用新的配置:

sudo service apache2 restart

(或reload可能就够了)

答案 1 :(得分:6)

我的回答是假设你已经让Apache在端口443上监听https流量。如果不是这样,你需要先设置它。根据您运行的操作系统,该过程将有所不同。


您想在Apache中执行此操作。在我的Ubuntu系统上,有一个文件/etc/apache2/ports.conf,其中包含以下行:

Listen 80

您将拥有一个包含该行的类似配置文件。删除它,不要忘记重启Apache。


实现此目的的另一种方法是允许在允许HTTP访问网站某些部分的情况下进行更复杂的Apache配置,即在MediaWiki目录中使用.htaccess file。试试这个:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

答案 2 :(得分:0)

鉴于您的网络服务器设置为一般支持 https,请在 MediaWiki 的 LocalSettings.php 配置文件中插入或更新以下行:

$wgForceHTTPS = true;

这会将所有使用 http 的查询重定向到 https,并且是网络服务器配置中重定向规则的替代方法。

另见: