为什么 apache2 不重定向到 https,或者不按照我对 mediawiki 的预期进行操作?
Why isn't apache2 redirecting to https, or acting how I expect with mediawiki?
我在 Ubuntu 14.04 上有一个 mediawiki 站点,它运行良好,位于 /var/www/html
我正在尝试在服务器上设置 https,但我还没能完成。这是我当前的 80 端口配置,我将在下面展示我正在尝试的内容。
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName mywiki.com
ServerAlias http://mywiki.com
DocumentRoot /var/www/html
</VirtualHost>
/var/www/html/LocalSettings.php
#this is the only relevant line...I think.
$wgServer = "http://mywiki.com"
我所做的更改按顺序如下
1. 将 $wgServer
值更改为 //mywiki.com
2.编辑/etc/apache2/sites-available/default-ssl.conf
如下
<VirtualHost _default_:80>
ServerName mywiki.com
Redirect permanent / https://mywiki.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName mywiki.com
ServerAlias https://mywiki.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
</VirtualHost>
3. 通过 运行 sudo a2dissite 000-default
.
阻止 apache 使用旧的 000-default.conf
文件
4. 运行 sudo a2ensite default-ssl
.
开始使用新的 ssl 默认文件
5. 重启 Apache2 sudo /etc/init.d/apache2 restart
此时,apache2 正确重启,输出和 error.log 中都没有错误。但是,当我通过键入 mywiki.com
访问该站点时,它不会将我重定向到 https
,现在它将站点的 :80
部分显示为 Index of / html/
。
当我尝试手动转到 https://mywiki.com
时,我看到一个页面不可用,就像它根本没有尝试一样。
我哪里错了?
您缺少服务器名称。可能就是这样。你能试试这个配置吗:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mywiki.com
Redirect permanent / https://mywiki.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName mywiki.com
ServerAlias www.mywiki.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
</VirtualHost>
这是一个愚蠢的解决方案,但我想在像 mediawiki 这样的产品上,我不会是最后一个犯这个错误的人。
我从未启用 ssl 模块
sudo a2enmod ssl
我浏览了数十篇有关如何在 mediawiki 上设置 ssl 的教程,其中 none 提到了这一点。如果你在很多网站上工作,这是很明显的,但我没有,希望这对以后的人有所帮助。
我在 Ubuntu 14.04 上有一个 mediawiki 站点,它运行良好,位于 /var/www/html
我正在尝试在服务器上设置 https,但我还没能完成。这是我当前的 80 端口配置,我将在下面展示我正在尝试的内容。
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName mywiki.com
ServerAlias http://mywiki.com
DocumentRoot /var/www/html
</VirtualHost>
/var/www/html/LocalSettings.php
#this is the only relevant line...I think.
$wgServer = "http://mywiki.com"
我所做的更改按顺序如下
1. 将 $wgServer
值更改为 //mywiki.com
2.编辑/etc/apache2/sites-available/default-ssl.conf
如下
<VirtualHost _default_:80>
ServerName mywiki.com
Redirect permanent / https://mywiki.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName mywiki.com
ServerAlias https://mywiki.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
</VirtualHost>
3. 通过 运行 sudo a2dissite 000-default
.
000-default.conf
文件
4. 运行 sudo a2ensite default-ssl
.
5. 重启 Apache2 sudo /etc/init.d/apache2 restart
此时,apache2 正确重启,输出和 error.log 中都没有错误。但是,当我通过键入 mywiki.com
访问该站点时,它不会将我重定向到 https
,现在它将站点的 :80
部分显示为 Index of / html/
。
当我尝试手动转到 https://mywiki.com
时,我看到一个页面不可用,就像它根本没有尝试一样。
我哪里错了?
您缺少服务器名称。可能就是这样。你能试试这个配置吗:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mywiki.com
Redirect permanent / https://mywiki.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName mywiki.com
ServerAlias www.mywiki.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/my.crt
SSLCertificateKeyFile /etc/apache2/ssl/my.key
</VirtualHost>
这是一个愚蠢的解决方案,但我想在像 mediawiki 这样的产品上,我不会是最后一个犯这个错误的人。
我从未启用 ssl 模块
sudo a2enmod ssl
我浏览了数十篇有关如何在 mediawiki 上设置 ssl 的教程,其中 none 提到了这一点。如果你在很多网站上工作,这是很明显的,但我没有,希望这对以后的人有所帮助。