golang TLS是否支持IE8?

时间:2012-09-28 15:11:39

标签: go

最新的Chrome / IE9 / Firefox都运行良好。 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")
}

请注意,“cert.pem”和“key.pem”由“crypto / tls / generate_cert.go”生成。我尝试了一个真正的证书,它也没有用。

2 个答案:

答案 0 :(得分:1)

TLS是一个标准,所以不存在“IE8的TLS”之类的东西。

我认为问题在于IE8不信任您的(假设自签名)证书。所以我认为你可以在this thread找到答案。

您还可以拥有正确签名的证书,但运行此IE8实例的计算机上的证书存储没有您的CA证书(如果您的证书已由下级CA签名,则为证书的整个信任链)因而值得信赖。在这种情况下,您应该这样做 - 获取您的CA(或整个CA链)的证书,如果有的话,并将其导入客户端计算机。

答案 1 :(得分:0)

由于OP没有做出正确答案,

从问题中移出

此问题可以通过此问题解决方案解决,“0001-Allow-SSLv2-compatible-client-hello-so-SSLv2-compati.patch”,问题http://code.google.com/p/go/issues/detail?id=3930

但是,此版本http://code.google.com/p/go/source/detail?r=8048fe8f6f4b无法解决问题。