Remove TLSConfig fields
This commit is contained in:
@@ -34,8 +34,7 @@ func makeRequest(url string) {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
req.TLSConfig.InsecureSkipVerify = true
|
||||
req.TLSConfig.Certificates = append(req.TLSConfig.Certificates, cert)
|
||||
req.Certificate = cert
|
||||
resp, err := gemini.Do(req)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@@ -63,9 +62,9 @@ func makeRequest(url string) {
|
||||
case gemini.StatusClassPermanentFailure:
|
||||
log.Fatal("Permanent failure")
|
||||
case gemini.StatusClassClientCertificateRequired:
|
||||
log.Fatal("Client Certificate Required")
|
||||
log.Fatal("Client certificate required")
|
||||
default:
|
||||
log.Fatal("Protocol Error")
|
||||
log.Fatal("Protocol error")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ package main
|
||||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"log"
|
||||
|
||||
"git.sr.ht/~adnano/go-gemini"
|
||||
@@ -18,27 +17,24 @@ func main() {
|
||||
// openssl ecparam -genkey -name secp384r1 -out server.key
|
||||
// openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650
|
||||
//
|
||||
config := tls.Config{}
|
||||
cert, err := tls.LoadX509KeyPair("examples/server/server.crt", "examples/server/server.key")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
config.Certificates = append(config.Certificates, cert)
|
||||
config.ClientAuth = tls.RequestClientCert
|
||||
config.VerifyPeerCertificate = func(rawCerts [][]byte, chains [][]*x509.Certificate) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
mux := &gemini.ServeMux{}
|
||||
mux.HandleFunc("/", func(rw *gemini.ResponseWriter, req *gemini.Request) {
|
||||
log.Printf("Request from %s for %s with certificates %v", req.RemoteAddr.String(), req.URL.String(), req.TLS.PeerCertificates)
|
||||
rw.WriteHeader(gemini.StatusSuccess, "text/gemini")
|
||||
rw.Write([]byte("You requested " + req.URL.String()))
|
||||
log.Printf("Request from %s for %s", req.RemoteAddr.String(), req.URL)
|
||||
if len(req.TLS.PeerCertificates) != 0 {
|
||||
log.Print("Client certificate: ", gemini.Fingerprint(req.TLS.PeerCertificates[0]))
|
||||
}
|
||||
})
|
||||
|
||||
server := gemini.Server{
|
||||
TLSConfig: config,
|
||||
Handler: mux,
|
||||
Handler: mux,
|
||||
Certificate: cert,
|
||||
}
|
||||
server.ListenAndServe()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user