examples/server: Use certificate.Store
This commit is contained in:
parent
66e03ef1e4
commit
69674fcdd5
@ -16,25 +16,31 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var server gemini.Server
|
certificates := &certificate.Store{
|
||||||
server.ReadTimeout = 30 * time.Second
|
CreateCertificate: func(hostname string) (tls.Certificate, error) {
|
||||||
server.WriteTimeout = 1 * time.Minute
|
return certificate.Create(certificate.CreateOptions{
|
||||||
if err := server.Certificates.Load("/var/lib/gemini/certs"); err != nil {
|
Subject: pkix.Name{
|
||||||
|
CommonName: hostname,
|
||||||
|
},
|
||||||
|
DNSNames: []string{hostname},
|
||||||
|
Duration: 365 * 24 * time.Hour,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
certificates.Register("localhost")
|
||||||
|
if err := certificates.Load("/var/lib/gemini/certs"); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
server.GetCertificate = func(hostname string) (tls.Certificate, error) {
|
|
||||||
return certificate.Create(certificate.CreateOptions{
|
|
||||||
Subject: pkix.Name{
|
|
||||||
CommonName: hostname,
|
|
||||||
},
|
|
||||||
DNSNames: []string{hostname},
|
|
||||||
Duration: 365 * 24 * time.Hour,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var mux gemini.ServeMux
|
mux := &gemini.ServeMux{}
|
||||||
mux.Handle("localhost", gemini.FileServer(os.DirFS("/var/www")))
|
mux.Handle("/", gemini.FileServer(os.DirFS("/var/www")))
|
||||||
server.Handler = &mux
|
|
||||||
|
server := &gemini.Server{
|
||||||
|
Handler: mux,
|
||||||
|
ReadTimeout: 30 * time.Second,
|
||||||
|
WriteTimeout: 1 * time.Minute,
|
||||||
|
GetCertificate: certificates.GetCertificate,
|
||||||
|
}
|
||||||
|
|
||||||
if err := server.ListenAndServe(); err != nil {
|
if err := server.ListenAndServe(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user