Commandline application to create certificates for use in a Nebula overlay network.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ruel Tmeizeh 751ad10721 Link to Nebula project page in README. 3 years ago
LICENSE Added README and LICENSE files. 3 years ago
README.md Link to Nebula project page in README. 3 years ago
go.mod Initial commit. 3 years ago
main.go Added skipping of existing records if the cert files already exist. 3 years ago

README.md

Nebulizer

Nebulizer is a console application that takes JSON input and creates a set of certificate files for a Nebula overlay network.

The nebula-cert binary is used to create the certificate files.

Input can be read from a JSON text file or piped in via standard input.

./nebulizer -f ./mynetwork.json

Example input:

{
  "ca": {
    "name":"My Nebula Overlay Network",
    "duration": 730
  },
  "hosts": [
    {
      "hostname": "lighthouse.nebula.mydomain.com",
      "ip": "172.31.9.1/26",
      "groups": []
    },
    {
      "hostname": "server1.nebula.mydomain.com",
      "ip": "172.31.9.2/26",
      "groups": [
        "servers",
        "app-backend"
      ]
    },
    {
      "hostname": "tmpadmin.nebula.mydomain.com",
      "ip": "172.31.9.8/26",
      "duration": 30,
      "groups": [
        "admin",
        "mod",
        "bobnet"
      ]
    },
    {
      "hostname": "laptop.nebula.mydomain.com",
      "ip": "172.31.9.5/26",
      "duration": 365,
      "groups": [
        "admin",
        "laptops",
        "mod",
        "bobnet"
      ]
    }
  ]
}

If you don't want to create the CA files, you can simply omit the ca object in the JSON. The duration key is specified in days, and is always optional. If omitted for the CA, a default of 1 year is used. The default duration for hosts is until 1 second before the expiration of the CA. Nebulizer will skip over creating a host or CA file if the certificate file already exists.

Run nebulizer -h to see the help:

Usage of ./nebulizer:
  -c string
    	CA certificate path. (default "./ca.crt")
  -f string
    	Path to network input file. Use '-' for standard input. (default "-")
  -k string
    	CA key path. (default "./ca.key")
  -o Overwrite existing files.
  -p string
    	Path to nebula-cert binary file. If not specified, search $PATH and current directory.