Add support for client-side certificates

This commit is contained in:
adnano
2020-09-21 18:21:42 -04:00
parent fd74b8fbe9
commit cc06e65b41
5 changed files with 43 additions and 11 deletions

2
example/client/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
client.crt
client.key

View File

@@ -4,14 +4,33 @@ package main
import (
"bufio"
"crypto/tls"
"fmt"
"git.sr.ht/~adnano/go-gemini"
"log"
"os"
"git.sr.ht/~adnano/go-gemini"
)
var client gemini.Client
func init() {
// Configure a client side certificate.
// To generate a certificate, run:
//
// openssl genrsa -out client.key 2048
// openssl ecparam -genkey -name secp384r1 -out client.key
// openssl req -new -x509 -sha256 -key client.key -out client.crt -days 3650
//
config := tls.Config{}
cert, err := tls.LoadX509KeyPair("example/client/client.crt", "example/client/client.key")
if err != nil {
log.Fatal(err)
}
config.Certificates = append(config.Certificates, cert)
client.TLSConfig = config
}
func makeRequest(url string) {
resp, err := client.Request(url)
if err != nil {

View File

@@ -17,7 +17,7 @@ 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{}
config := tls.Config{}
cert, err := tls.LoadX509KeyPair("example/server/server.crt", "example/server/server.key")
if err != nil {
log.Fatal(err)