¿Por qué los sitios habilitados para SSL no responden de acuerdo con el registro del archivo "hosts"?

0

Estaba jugando con el archivo hosts bajo mi distribución de Linux. Se agregó una entrada

 192.168.3.121   www.facebook.com    

en el archivo / etc / hosts. Creé 2 servidores que enlazan con un archivo index.html en los puertos 80 y 443. Ahora, cuando intento acceder a www.facebook.com a través de Firefox o Chrome, obtengo los siguientes errores.

Tambiénenelservidor192.168.3.121registros,reciboalgunascadenashexadecimalesdesdeelnavegador

192.168.3.121--[11/Jul/201614:30:55]code400,messageBadrequestsyntax('\x16\x03\x01\x00\xb9\x01\x00\x00\xb5\x03\x030_x\xe6\x13\xa5x\xe4\xcdHQ\x9d\x8c\xcd\xe9\x9co\xa0LpO\x81}\xad\x1b}"\x83\xceM\x98\xdd\x00\x00\x16\xc0+\xc0/\xc0')

Mientras intento con un sitio web que no usa SSL, puedo redireccionar los navegadores a mi sitio web de inicio con éxito en 192.168.3.121. ¿Qué seguridad interna están implementando los navegadores? ¿Hay alguna manera de que los navegadores redirijan un sitio web https a mi IP 192.168.3.121?

    
pregunta harveyD 14.07.2016 - 13:17
fuente

2 respuestas

4

El mensaje de error indica que el servidor esperaba una solicitud HTTP pero obtuvo una solicitud HTTPS: \x16\x03\x01\ es el inicio de un registro TLS. Esto probablemente significa que la configuración de su servidor es incorrecta, es decir, que el servidor espera HTTP en el puerto 443 y no en HTTPS.

    
respondido por el Steffen Ullrich 14.07.2016 - 14:18
fuente
0
  1. Genere un certificado autofirmado compuesto de un certificado y una clave privada para el servidor. El comando utilizado es

    openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
    
  2. Crea un archivo index.html.

  3. Inicia un servidor https de Python con el siguiente código en el mismo directorio donde se encuentra el archivo index.html.

    import BaseHTTPServer, SimpleHTTPServer
    import ssl
    
    httpd = BaseHTTPServer.HTTPServer(('192.168.3.121', 443), SimpleHTTPServer.SimpleHTTPRequestHandler)
    httpd.socket = ssl.wrap_socket (httpd.socket, certfile='path/to/192.168.3.121.pem', server_side=True)
    httpd.serve_forever()
    
  4. Reinicie el navegador y realice la solicitud.

  5. No olvides editar el archivo hosts en consecuencia.

  6. Refs #       enlace       enlace

respondido por el harveyD 14.07.2016 - 14:30
fuente

Lea otras preguntas en las etiquetas