Add support for client-side certificates
This commit is contained in:
2
example/client/.gitignore
vendored
Normal file
2
example/client/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
client.crt
|
||||
client.key
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user