2012-09-28 12 views
5

Las últimas Chrome/IE9/Firefox funcionan bien. IE8 se queja de que la página no se puede mostrar y parece que la conexión se ha cancelado. Aquí va el código de prueba rápida.¿Golang TLS es compatible con IE8?

package main 

import (
    "time" 
    "fmt" 
    "net/http" 
) 

type Handler struct { 
} 

func (this *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 
    fmt.Fprintf(w, "Hello, %q", r.URL.Path) 
} 

func main() { 
    handler := &Handler{} 
    ss := &http.Server{ 
     Addr: ":443", 
     Handler: handler, 
     ReadTimeout: 10 * time.Second, 
     WriteTimeout: 10 * time.Second, 
     MaxHeaderBytes: 1 << 20, 
    } 
    ss.ListenAndServeTLS("cert.pem", "key.pem") 
} 

Tenga en cuenta que "cert.pem" y "key.pem" son generados por "cripto/TLS/generate_cert.go". Probé un certificado real, y tampoco funcionó.

+0

Acabo de darme cuenta de que el iPad tiene el mismo problema. – albert

+0

sería bueno y más claro si hiciera una respuesta adecuada (detallada si es posible) y la acepte. –

Respuesta

1

TLS es un estándar , por lo que no existe nada como "TLS de IE8" o algo como esto.

Supongo que el problema es que IE8 no confía en su certificado (supuestamente autofirmado). Así que creo que podrías encontrar una respuesta en this thread aquí en SO.

También puede tener un certificado debidamente firmado pero el almacenamiento del certificado en el equipo que ejecuta esta instancia IE8 no tiene el certificado de su CA (o toda la cadena de certificados si su certificado ha sido firmado por una CA subordinada) importado y por lo tanto de confianza. En ese caso, debe hacer exactamente eso — obtener el certificado de su CA (o toda la cadena de CA, si corresponde) e importarlo en la máquina del cliente.

+0

El iPad puede ser más complicado de manejar ya que uno normalmente tiene dificultades para cargarlo. Una vez importé con éxito el certificado de mi CA al iPad de un usuario cargando el archivo '# PKCS12' generado a partir de ese certificado a un servidor web local de confianza y luego navegando a su URL en Safari en iPad. Al realizar la descarga, ofrece automáticamente la importación certificado. – kostix

+3

Gracias por responder. En realidad, quise decir ** el estado actual de la implementación de TLS en la biblioteca estándar de golang **, pero disculpe por la expresión confusa de todos modos. Aprendí de un foro de Golang que el problema se debe a la respuesta de handshake de SSLv2. Aquí está el hilo de tema relacionado, http://code.google.com/p/go/issues/detail?id=3930. – albert

+0

@albert, gracias por compartir sus hallazgos. – kostix