我需要安装 MediaWiki 以要求使用 https(并拒绝正常的 http)。我花了2个小时寻找。设置$wgServer
不起作用,关闭端口 80httpd.conf
也不起作用。
我的 wiki 安装在 Apache 服务器上运行。
我刚刚在 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
可能就足够了)
我的回答假设您已经让 Apache 在端口 443 上侦听 https 流量。如果不是这样,您需要先进行设置。该过程将根据您运行的操作系统而有所不同。
您想在 Apache 中执行此操作。在我的 Ubuntu 系统上,有一个文件/etc/apache2/ports.conf
包含以下行:
Listen 80
您将有一个包含该行的类似配置文件。删除它,不要忘记重新启动 Apache。
实现此目的的另一种方法是使用MediaWiki 目录中的.htaccess
文件,它允许更复杂的 Apache 配置,允许 HTTP 访问站点的某些部分。尝试这个:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
鉴于您的 Web 服务器设置为https
一般支持,请在您LocalSettings.php
的 MediaWiki 配置文件中插入或更新以下行:
$wgForceHTTPS = true;
http
这使用to重定向所有查询,https
并且是 Web 服务器配置中重定向规则的替代方法。
也可以看看: