Repository Reading Site
40-generate-selfsigned-secret.sh
manifests/15-tls/40-generate-selfsigned-secret.sh
#!/usr/bin/env bash
set -euo pipefail
namespace="${1:-tls-lab}"
secret_name="${2:-secure-web-tls}"
host="${3:-secure.k8s-lab.local}"
days="${4:-365}"
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT
openssl req \
-x509 \
-nodes \
-newkey rsa:2048 \
-sha256 \
-days "$days" \
-keyout "$tmpdir/tls.key" \
-out "$tmpdir/tls.crt" \
-subj "/CN=${host}" \
-addext "subjectAltName=DNS:${host}"
kubectl -n "$namespace" create secret tls "$secret_name" \
--cert="$tmpdir/tls.crt" \
--key="$tmpdir/tls.key" \
--dry-run=client -o yaml | kubectl apply -f -
openssl x509 -in "$tmpdir/tls.crt" -noout -subject -issuer -dates -ext subjectAltName