#!/bin/bash # generate_certificate.sh — Create a self-signed X.509 certificate for # open62541 OPC UA applications. Outputs DER-encoded certificate and # private-key files suitable for the demo programs in this project. set -euo pipefail if [ $# -lt 2 ] || [ $# -gt 3 ]; then echo "Usage: generate_certificate.sh [uri]" >&2 exit 1 fi certs_dir="$1" name="$2" cn="${name}@localhost" uri="${3:-urn:bobink.${name}}" mkdir -p "$certs_dir" cnf="$certs_dir/${name}.cnf" cat >"$cnf" </dev/null openssl x509 -in "$certs_dir/${name}_cert.pem" -outform der \ -out "$certs_dir/${name}_cert.der" openssl rsa -in "$certs_dir/${name}_key.pem" -outform der \ -out "$certs_dir/${name}_key.der" 2>/dev/null rm -f "$certs_dir/${name}_cert.pem" "$certs_dir/${name}_key.pem" "$cnf" echo "Generated certificate '$name' (CN=$cn, URI=$uri):" echo " $certs_dir/${name}_cert.der" echo " $certs_dir/${name}_key.der" echo " $certs_dir/${name}_key.der"