5

最新の 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」によって生成されることに注意してください。実際の証明書を試しましたが、うまくいきませんでした。

4

2 に答える 2

1

TLS は標準なので、「IE8 の TLS」などというものはありません。

問題は、IE8があなたの(おそらく自己署名された)証明書を信頼していないことだと思います。したがって、SOのこのスレッドで答えを見つけることができると思います。

適切に署名された証明書を持つこともできますが、この IE8 インスタンスを実行しているコンピューターの証明書ストレージには、CA の証明書 (または、証明書が下位 CA によって署名されている場合は証明書の信頼チェーン全体) がインポートされていないため、信頼されていません。 . その場合、正確にそれを行う必要があります — CA (または存在する場合は CA のチェーン全体) の証明書を取得し、それをクライアント マシンにインポートします。

于 2012-09-28T16:19:17.933 に答える
0

OPが適切な回答をしなかったため、質問から移動しました

この問題は、問題http://code.google.com/p/go/issues/detailのこのパッチ「0001-Allow-SSLv2-compatible-client-hello-so-SSLv2-compati.patch」で解決できます。 ?id=3930 .

ただし、このリビジョンhttp://code.google.com/p/go/source/detail?r=8048fe8f6f4bでは問題は解決されません。

于 2012-10-02T15:49:10.410 に答える