# Root CA certificate echo "Generating Root CA certificate..." openssl req \ -x509 \ -newkey rsa:4096 \ -keyout ca_key.pem \ -out ca_cert.pem \ -days 3650 \ -noenc \ -subj "/CN=Test CA $(date +"%Y-%m-%d")" \ -addext "basicConstraints=critical,CA:TRUE,pathlen:1" \ -addext "keyUsage=critical,keyCertSign,cRLSign" # Issuing CA certificate echo "Generating Issuing CA certificate..." openssl req \ -newkey rsa:4096 \ -keyout issuing_ca_key.pem \ -noenc \ -subj "/CN=Issuing Test CA $(date +"%Y-%m-%d")" \ -addext "basicConstraints=critical,CA:TRUE,pathlen:0" \ -addext "keyUsage=critical,keyCertSign,cRLSign" | openssl x509 \ -req \ -CA ca_cert.pem \ -CAkey ca_key.pem \ -copy_extensions copyall \ -days 3650 \ -out issuing_ca_cert.pem # Client certificate echo "Generating Client certificate..." openssl req \ -newkey rsa:4096 \ -keyout client_key.pem \ -noenc \ -subj "/CN=test-client" \ -addext "basicConstraints=critical,CA:FALSE" \ -addext "keyUsage=critical,digitalSignature,keyEncipherment" \ -addext "extendedKeyUsage=clientAuth" | openssl x509 \ -req \ -CA issuing_ca_cert.pem \ -CAkey issuing_ca_key.pem \ -copy_extensions copyall \ -days 365 \ -out client_cert.pem