#!/bin/sh set -e days="3650" keyout="syncthing.key" reqout="$(mktemp)" certout="syncthing.crt" alg="ED25519" help() { cat < ] [ -k ] [ -448 ] Defaults are: certificate_out: 'syncthing.crt' key_out: 'syncthing.key' Optionally, the -448 option will generate an ED448 key instead of ED25519. EOF exit 1 } while [ $# -gt 0 ] ; do case $1 in -c) certout="$2" ; shift ; shift ;; -k) keyout="$2" ; shift ; shift ;; -448) alg="ED448"; shift ;; *) help ;; esac ; done v3Section=" basicConstraints = CA:FALSE keyUsage = digitalSignature, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth subjectAltName = @alt_names [alt_names] DNS.1 = syncthing " openssl genpkey -algorithm $alg > "$keyout" cnf="$(mktemp)" cat > "$cnf" < "$extfile" <