package
0.0.0-20240711123734-c091ff3b1106
Repository: https://github.com/khigashiguchi/go-snippets.git
Documentation: pkg.go.dev

# README

https-client-server

HTTPS client app and server app.

Getting Started

Prepare certification

  • create secret key
openssl genrsa -out ca.key 2048
  • create csr
openssl req -new -sha256 -ket ca.key -out ca.csr -config openssl.cnf
  • create certification file
openssl x509 -in ca.csr -days 365 -req -signkey ca.key -sha256 -out ca.crt -extfile {openssl.cnf path} -extensions CA

Prepare server certification

  • create server secret key
openssl genrsa -out server.key 2048
  • create client csr

openssl req -new -nodes -sha256 -key server.key -out server.csr -config {openssl.cnf path}

Notice: answer common name 'localhost'

  • create server certification file
openssl x509 -req -days 365 -in server.csr -sha256 -out server.crt -CA ca.crt -CAkey ca.key -CAcreateserial -extfile {openssl.cnf path} -extensions Server

Prepare client certification

  • create client secret key
openssl genrsa -out client.key 2048
  • create client csr file
openssl req -new -nodes -sha256 -key client.key -out client.csr -config {openssl.cnf path}
  • create client certification
openssl x509 -req -days 365 -in client.csr -sha256 -out client.crt -CA ca.crt -CAkey ca.key -CAcreateserial -extfile {openssl.cnf file path} -extensions Client

Run application

  • Run server
go run server.go
  • Execute Client
go run client.go

Version

Ref