最新的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”生成。我尝试了一个真正的证书,它也没有用。
答案 0 :(得分:1)
TLS是一个标准,所以不存在“IE8的TLS”之类的东西。
我认为问题在于IE8不信任您的(假设自签名)证书。所以我认为你可以在this thread找到答案。
您还可以拥有正确签名的证书,但运行此IE8实例的计算机上的证书存储没有您的CA证书(如果您的证书已由下级CA签名,则为证书的整个信任链)因而值得信赖。在这种情况下,您应该这样做 - 获取您的CA(或整个CA链)的证书,如果有的话,并将其导入客户端计算机。
答案 1 :(得分:0)
从问题中移出
此问题可以通过此问题解决方案解决,“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无法解决问题。