linux apache ssl https centos

linux - Cómo redirigir las solicitudes HTTPS a HTTP sin un certificado(Apache VirtualHosts) y evitar una advertencia de certificado



ssl centos (2)

Primero me gustaría decir primero, que esta no es una buena práctica y deberíamos comprometernos a tener todo en HTTPS el 100% del tiempo, pero en este caso tenía una serie de requisitos incómodos en un sistema que no contenía información confidencial. Era bastante ignorante de cómo funcionaba HTTPS / TLS al hacer esta pregunta cuando era más joven, pero lo dejé en su lugar para ayudar a otros, ya que recibe una buena cantidad de atención. Recomiendo leer el TLS 101 de Oreily si estás interesado. Ahora puede obtener certificados TLS gratuitos con Let''s Encrypt, que le recomiendo. Por último, si está utilizando la configuración predeterminada de Apache, consulte el generador de configuración SSL de Mozilla seleccionando ''Moderno'' después de ingresar su versión de Apache.

Estoy alojando un par de sitios web separados en un servidor apache:

site.com

site.com redirige a todos los usuarios a HTTPS desde la aplicación.

ejemplo.com

example.com es un sitio web HTTP y las solicitudes HTTPS son redirigidas a HTTP

Para que las solicitudes accidentales de https://example.com en lugar de http://example.com no obtengan site.com (debido a que solo se usa un HTTPS vhost que se convierte en el sitio predeterminado) necesito configurar un https vhost para example.com pero tengo que usar un certificado autofirmado ya que no hay razón para que el sitio use un SSL.

Esto significa que cuando alguien visita https://example.com obtiene una página de advertencia del navegador que indica que el SSL está autofirmado y, tan pronto como hace clic en continuar, se lo redirige a HTTP

¿Hay alguna forma de redirigir las solicitudes HTTPS a HTTP sin un certificado

Este es el vhost actual:

<VirtualHost *:443> ServerName about.example.com:443 DocumentRoot "/directory" <Directory "/directoy"> AllowOverride All Require all granted </Directory> RewriteEngine On RewriteCond %{HTTPS} on RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} SSLEngine on SSLCertificateFile /etc/httpd/ssl/ExampleCOM.pem SSLCertificateKeyFile /etc/httpd/ssl/AboutExampleCOM-key.pem Header always set Strict-Transport-Security "max-age=15768000" </VirtualHost> SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 SSLHonorCipherOrder on # Disabled to avoid CRIME attack SSLCompression off # this usually compromises perfect forward secrecy SSLSessionTickets off # OCSP Stapling, httpd 2.3.3 or later SSLUseStapling on SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off SSLStaplingCache shmcb:/var/run/ocsp(128000)


Básicamente, eso es un problema. Al comunicarse a través de HTTPS, la capa de comunicación TLS se configura antes de que se cambie algo, es decir, la advertencia sobre el certificado ocurre antes de que se transfiera cualquier información sobre el sitio web. Por lo tanto, se necesita un Certificado para permitir que un navegador se conecte cuando se define https, autofirmado o no.

Idealmente, y para la ''mejor práctica'', deberíamos alentar a las personas a usar HTTPS de manera predeterminada (me doy cuenta de que esto es un gasto y puede ser molesto con los certificados, y aunque no debería haber nada malo con los certificados autofirmados, a menudo hay problemas y mensajes del navegador, etc.).

Incluso si tiene un servidor de aplicaciones que `` solo puede hacer http '''', la mejor práctica generalmente es presentar ese servidor de aplicaciones con un servidor web (como nginx o lighthttpd o alguna forma de equilibrador de carga) que también proporcionará su terminación https. - que es lo que parece haber hecho con su httprewrite que reenvía la solicitud a su sitio.

¿Puede encontrar algunos proveedores de certificados SSL baratos que están instalados en la mayoría de los navegadores?


Respuesta corta. No, no hay una manera de hacer esto.

La conexión a https ocurre antes de que ocurra cualquier tipo de redirección. Lo único que puedes hacer es comprar un certificado. Los certificados de dominio regulares son súper baratos en estos días.

Puede obtener un certificado de dominio válido por $ 4.99 / año . Luego realice la redirección para que tanto https como http estén cubiertos.

O puede apagar su 443 vhost pero el usuario obtendrá un 404 o una página de error de conexión. Si intentan https.

Esas son tus opciones. Sus usuarios siempre recibirán esa página de advertencia siempre que sea autofirmada y eso es por diseño.