10

我需要安装 MediaWiki 以要求使用 https(并拒绝正常的 http)。我花了2个小时寻找。设置$wgServer不起作用,关闭端口 80httpd.conf也不起作用。

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

4

3 回答 3

8

我刚刚在 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可能就足够了)

于 2015-02-05T16:38:22.927 回答
7

我的回答假设您已经让 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}
于 2012-06-12T13:25:47.083 回答
1

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

$wgForceHTTPS = true;

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

也可以看看:

于 2021-07-05T20:02:13.043 回答