/*
-tofuproxy -- flexible HTTP/WARC proxy with TLS certificates management
+tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU
+ manager, WARC/geminispace browser
Copyright (C) 2021 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
}
caches.TLSAuthCacheM.RLock()
for host, tlsCert := range caches.TLSAuthCache {
- cert, err := x509.ParseCertificate(tlsCert.Certificate[0])
- if err != nil {
- log.Fatalln(err)
+ subj := "NONE"
+ if len(tlsCert.Certificate) != 0 {
+ cert, err := x509.ParseCertificate(tlsCert.Certificate[0])
+ if err != nil {
+ log.Fatalln(err)
+ }
+ subj = cert.Subject.String()
}
- if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, cert.Subject)); err != nil {
+ if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, subj)); err != nil {
break
}
}