ovpncfg

package module
v0.0.0-...-04aba3d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2023 License: MIT Imports: 5 Imported by: 0

README

ovpn-cfgen

ovpn-cfgen is a command line tool that generates certificates and (portable) configuration files for OpenVPN that just work.

Installing ovpn-cfgen

go install github.com/xiam/openvpn-config-generator/cmd/ovpn-cfgen@latest

Using ovpn-cfgen to generate certificates

Create a self-signed root CA certificate
ovpn-cfgen build-ca
# 2019/05/29 21:53:28 Your new CA certificate was successfully generated.
# 2019/05/29 21:53:28 certificate: "/home/rev/ca.crt"
# 2019/05/29 21:53:28 private key: "/home/rev/ca.key"

openssl x509 -in ca.crt -noout -text
Create a server certificate
ovpn-cfgen build-key-server
# 2019/05/29 21:54:22 Your new server certificate was successfully generated.
# 2019/05/29 21:54:22 certificate: "/home/rev/server.crt"
# 2019/05/29 21:54:22 private key: "/home/rev/server.key"

openssl x509 -in server.crt -noout -text
Create a client certificate
ovpn-cfgen build-key --name my-laptop                                                                  ~
# 2019/05/29 21:54:59 Your new client certificate was successfully generated.
# 2019/05/29 21:54:59 certificate: "/home/rev/my-laptop.crt"
# 2019/05/29 21:54:59 private key: "/home/rev/my-laptop.key"

openssl x509 -in my-laptop.crt -noout -text

Using ovpn-cfgen to generate config files for OpenVPN

The following recipe assumes you followed the steps above and that you have a CA certificate and key (ca.crt and ca.key), as well as the server (server.crt and server.key) and client (my-laptop.crt and my-laptop.key) key pairs.

Generate a server configuration file

Create additional keys dh.pem and key.tlsauth:

openssl dhparam -out dh.pem 2048
# takes a while...

openvpn --genkey --secret key.tlsauth

Use the server-config command to generate a configuration file for OpenVPN server:

ovpn-cfgen server-config
# 2019/05/30 23:11:21 Your new server configuration file was written to: "server.conf"
Generate a client configuration file
ovpn-cfgen client-config \
  --remote 127.0.0.1 \
  --cert my-laptop.crt \
  --key my-laptop.key \
  --output my-laptop.ovpn

# 2019/05/30 23:15:10 Your new client configuration file was written to: "my-laptop.ovpn"

Using your new configuration files

Spin up your OpenVPN server:

mkdir -p ccd
sudo openvpn --config server.conf
# ...
# Thu May 30 23:44:21 2019 us=100431 my-laptop/127.0.0.1:58334 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key

Spin up your OpenVPN client:

sudo openvpn --config my-laptop.ovpn
# ...
# Thu May 30 23:44:21 2019 Initialization Sequence Completed

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenOpenVPNStaticKey

func GenOpenVPNStaticKey() ([]byte, error)

func NewClientConfig

func NewClientConfig() (*generator.Config, error)

func NewServerConfig

func NewServerConfig() (*generator.Config, error)

func WriteCert

func WriteCert(cert []byte, file string) error

func WriteConfig

func WriteConfig(config *generator.Config, file string) error

func WriteKey

func WriteKey(key []byte, file string) error

Types

This section is empty.

Directories

Path Synopsis
cmd
lib

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL