¿Puedo usar el puerto 443 sin SSL?

5

Si estoy ejecutando un servidor web en el puerto 80 y también tengo el puerto 443 (HTTPS) activado pero no se aplica. No me autofirmé ni firmé con una CA apropiada (es decir, no uso SSL para mi sitio), ¿dejar el puerto 443 activado representa una amenaza para mi servidor web? Por ejemplo, ¿podría un atacante hackear el puerto 443 y entrar en mi sitio web en el puerto 80?

    
pregunta Pang Ser Lark 28.10.2015 - 08:34
fuente

4 respuestas

12

¿Entonces está ejecutando el puerto 443 en un servidor web usando HTTP simple (sin TLS / SSL)?

La mejor práctica es cerrar cualquier puerto que no se esté utilizando.

Depende de dónde esté configurada la raíz web para el puerto 443 para buscar en su servidor. Si esta es la misma ubicación que su sitio web normal, esto podría ser un riesgo si hay ciertos elementos que necesitan ser protegidos a través de la configuración que falta en la configuración de este segundo webroot.

Si está configurado para buscar en otra parte, los archivos podrían exponerse involuntariamente.

No es un riesgo de seguridad para sus usuarios porque no verán https:// o el candado en la barra de direcciones del navegador. Simplemente verían http://example.com:443/ que da la misma seguridad que el puerto 80 ( http://example.com/ ).

    
respondido por el SilverlightFox 28.10.2015 - 11:15
fuente
3

Ejecutar el puerto 443 como lo describió puede ser problemático porque los datos que transitan a través de él se cifrarán, pero no hay forma de que un compañero esté seguro de que se está comunicando con usted y no con otra persona ( ataques del hombre en el medio) el servidor intentará transmitir en claro, mientras que casi cualquier cliente convencional esperará tráfico encriptado y (con suerte) abortará con un error de 'protocolo de enlace SSL fallido'.

  

¿El atacante hackearía el puerto 443 y entraría en mi sitio web en el puerto 80?

Tienes que preocuparte por todos los puertos abiertos como comenté a continuación. No abra un puerto que no necesite.

Puede que te interese leer esto: Usar el puerto SSL (443) para el tráfico no SSL, ¿mala idea?

    
respondido por el user45139 28.10.2015 - 08:44
fuente
2

Puede ejecutar HTTP en cualquier puerto (y de manera similar HTTPS en cualquier puerto). Convencionalmente, ejecuta HTTP en el puerto 80, HTTPS en el puerto 443, ya que al usar estos puertos bien definidos, los usuarios no pueden especificar el número de puerto.

Si se conecta a enlace , realizará una solicitud de HTTPS al puerto 443. Si intenta conectarse a un puerto que no ejecuta SSL / TLS con El protocolo HTTPS obtendrá un error de conexión SSL. Puedes ver esto, por ejemplo, si intentas conectarte a https://security.stackexchange.com:80 . Esto es lo que ocurrirá si ejecuta HTTP en el puerto 443 en example.com; cualquier usuario que se conecte a https://example.com obtendrá ese error.

A la inversa, si intenta conectarse a un puerto que ejecuta HTTPS con su navegador realizando la solicitud a través del protocolo HTTP antiguo habitual, recibirá un mensaje de error HTTP 400 Bad Request ( The plain HTTP request was sent to HTTPS port ). Puede ver un ejemplo de este error yendo a: http://www.time.com:443/ . Tenga en cuenta que HSTS complica ligeramente las cosas; Si está ejecutando HSTS , su navegador puede cambiar automáticamente las solicitudes HTTP a las HTTPS para un sitio determinado. (Esta es la razón por la que no verá este error si intenta ir a http://www.facebook.com:443/ y sería redirigido a https://www.facebook.com ).

Si desea que las solicitudes de https://example.com funcionen, pero no necesita la seguridad de SSL, debe obtener un certificado debidamente firmado. Esto se puede hacer de forma gratuita con https://letsencrypt.org/ y hay muchas otras soluciones de bajo costo. Si realmente no desea que los usuarios usen HTTPS, puede reescribir las reglas para redirigir de HTTPS a HTTP. (Tenga en cuenta que para utilizar estos redireccionamientos sin advertencias del navegador sobre un certificado SSL no válido, necesita un certificado SSL válido).

EDICIÓN

: se eliminó la recomendación para StartSSL ya que no es de confianza para los principales navegadores .

    
respondido por el dr jimbob 28.10.2015 - 18:08
fuente
0

Además del aspecto de seguridad, estarás rompiendo los estándares. Si inicia un servidor HTTP en el puerto 443 y accede a él a través de un navegador normal, obtendrá

gibberish en el lado del servidor:

# python -m http.server 443
Serving HTTP on 0.0.0.0 port 443 ...
127.0.0.1 - - [28/Oct/2015 17:33:53] code 400, message Bad request version ('À+À/\x00\x9eÌ\x14Ì\x13Ì\x15À')
127.0.0.1 - - [28/Oct/2015 17:33:53] "▬♥☺ Ì☺  È♥♥◄mûú£ô↑ß\x99\x9e´q¨è÷ü¿c↔↓<2)ÂTO\x8f^¤:2→   À+À/ \x9e̶Ì‼̧À" 400 -
127.0.0.1 - - [28/Oct/2015 17:34:03] code 400, message Bad request version ('\x8er*Êå¦\x10xÆE\x05úH6X+\x00\x00\x14À')
127.0.0.1 - - [28/Oct/2015 17:34:03] "▬♥☺ \x9d☺  \x99♥☻ü▲Eÿµp=\x9b¹?kàê½↕▲\x8er*Êå¦►xÆE♣úH6X+  ¶À" 400 -
127.0.0.1 - - [28/Oct/2015 17:34:13] code 400, message Bad HTTP/0.9 request type ('\x16\x03\x01\x00\x9d\x01\x00\x00\x99\x03\x01Q¤')
127.0.0.1 - - [28/Oct/2015 17:34:13] "▬♥☺ \x9d☺  \x99♥☺Q¤↔:BÀ/o{XÈ\x8d↑|ÈÖÂ\x91á\x8c↕£ÿdá◄è¹\x8e"}÷  ¶À" 400 -

y errores de protocolo en el navegador

    
respondido por el WoJ 28.10.2015 - 17:41
fuente

Lea otras preguntas en las etiquetas