use*_*361 9 apache https mediawiki
我需要安装MediaWiki才能要求使用https(并拒绝普通的http).我花了2个小时看.设置$wgServer
不起作用,关闭端口80 httpd.conf
也不起作用.
我的wiki安装在Apache服务器上运行.
我的回答假设你已经让Apache在端口443上监听https流量.如果不是这样,你需要先设置它.根据您运行的操作系统,该过程将有所不同.
你想在Apache中这样做.在我的Ubuntu系统上,有一个/etc/apache2/ports.conf
包含以下行的文件:
Listen 80
Run Code Online (Sandbox Code Playgroud)
您将拥有一个包含该行的类似配置文件.删除它,不要忘记重启Apache.
实现此目的的另一种方法是允许更复杂的Apache配置(允许HTTP访问站点的某些部分),即使用MediaWiki目录中的.htaccess
文件.试试这个:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Run Code Online (Sandbox Code Playgroud)
我刚刚在Ubuntu 14上完成了这个(今天是第一次,所以可能有更好的方法!)通过设置
$wgServer = "//myhostname.com/mediawiki";
Run Code Online (Sandbox Code Playgroud)
这使服务器名称为"protocol relative",因此它可以使用HTTP或HTTPS.您可以将其设置为https:// ...但是.
然后配置apache2以将所有HTTP流量重定向到HTTPS:
编辑默认的SSL配置(假设您只使用默认站点):
sudo vim /etc/apache2/sites-available/default-ssl.conf
Run Code Online (Sandbox Code Playgroud)
阅读类似的东西:
# 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>
Run Code Online (Sandbox Code Playgroud)
启用默认SSL站点(如果尚未启用)(这将创建从启用站点到站点可用的链接)
sudo a2ensite default-ssl
Run Code Online (Sandbox Code Playgroud)
这假定您已经获得了一个SSL证书(我生成了一个自签名证书),该证书已被放置在上面的配置中/etc/apache2/ssl/apache.pem
并被/etc/apache2/ssl/apache.key
引用.
最后得到apache使用新的配置:
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
(或者reload
可能就够了)
归档时间: |
|
查看次数: |
15130 次 |
最近记录: |