Remove TLSConfig fields

This commit is contained in:
adnano
2020-09-25 18:53:20 -04:00
parent ec68ab8609
commit ace3e682de
5 changed files with 101 additions and 79 deletions

View File

@@ -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")
}
}

View File

@@ -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()
}