¿La forma más sencilla de hacer que MediaWiki requiera HTTPS en todas las páginas?

Necesito una instalación de MediaWiki para requerir el uso de https (y rechazar el http normal). Llevo 2 horas buscando. Ajuste $wgServer no funciona y cierra el puerto 80 en httpd.conf tampoco funciona.

La instalación de mi wiki se ejecuta en un servidor Apache.

preguntado el 12 de junio de 12 a las 14:06

Decirle a Apache que no escuche en el puerto 80 funcionará, si lo hace correctamente. -

Además, ¿qué sistema operativo estás ejecutando? -

3 Respuestas

Acabo de hacer esto en Ubuntu 14 (por primera vez hoy, ¡así que puede haber una mejor manera!) configurando

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

Esto hace que el nombre del servidor sea "relativo al protocolo", por lo que funciona con HTTP o HTTPS. Sin embargo, probablemente puedas configurarlo en https://...

Luego configure apache2 para redirigir todo el tráfico HTTP a HTTPS:

Edite la configuración SSL predeterminada (esto supone que solo está utilizando el sitio predeterminado):

sudo vim /etc/apache2/sites-available/default-ssl.conf

leer algo como:

# 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>

Habilite el sitio SSL predeterminado, si aún no lo ha hecho (esto crea un enlace de los sitios habilitados a los sitios disponibles)

sudo a2ensite default-ssl

Esto supone que ya obtuvo un certificado SSL (yo generé uno autofirmado) que se colocó en /etc/apache2/ssl/apache.pem y /etc/apache2/ssl/apache.key como se menciona en la configuración anterior.

Finalmente, obtenga apache para usar la nueva configuración:

sudo service apache2 restart

(O reload puede ser suficiente)

Respondido 05 Feb 15, 16:02

¿Cómo cambiaría esta respuesta? if queríamos example.com dirigido a www.example.com; y entonces hacer todo HTTPS? (Traté de configurar la misma configuración de Preguntas y respuestas similares. Pensé que era correcto, pero los inicios de sesión de MediaWiki están rotos (todo lo demás está bien). Ahora estoy aquí tratando de "habilitar HTTPS para Mediawiki de forma predeterminada"). - jww

¡Me pregunto por qué esta sintaxis "relativa al protocolo" no es la predeterminada! gracias por salvarme hoy :) - lentesovet

Mi respuesta asume que ya tiene Apache escuchando el tráfico https en el puerto 443. Si ese no es el caso, primero debe configurarlo. El procedimiento será diferente según el sistema operativo que esté ejecutando.


Quieres hacer esto en Apache. En mi sistema Ubuntu, hay un archivo /etc/apache2/ports.conf que contiene la siguiente línea:

Listen 80

Tendrá un archivo de configuración similar que contiene esa línea. Bórralo y no olvides reiniciar Apache.


Otra forma de lograr esto, que permite configuraciones de Apache más complejas en las que permite el acceso HTTP a algunas partes del sitio, es usar un .htaccess presentar en tu directorio de MediaWiki. Prueba esto:

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

Respondido el 12 de junio de 12 a las 14:06

¿Esto asegura que la wiki no configurará el formulario de inicio de sesión/búsqueda para publicar en http? - doncho gunchov

> Otra forma de lograr esto... // Esto es lo que funcionó para mí perfectamente. - kghbln

7 años después... una redirección (RewriteRule) es definitivamente la mejor manera de hacer esto. Deshabilitar el puerto 80 no es una buena idea porque desea que las personas puedan escribir el nombre de dominio sin https://. - Todos somos monica

Dado que su servidor web está configurado para soportar https en general, inserte o actualice la siguiente línea en su LocalSettings.php archivo de configuración de MediaWiki:

$wgForceHTTPS = true;

Esto redirige todas las consultas usando http a https y es una alternativa a una regla de redirección en la configuración del servidor web.

Ver también:

Respondido 05 Jul 21, 21:07

Creo que esta es la mejor respuesta. Además, asegúrese de configurar $wgServer para usar "https://". Si $wgServer comienza con "http://", se lanzará una excepción. - reléman357

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.