Here's a complete Bash script that generates:
- A Certificate Authority (CA) (self-signed)
- A server TLS certificate signed by the CA
- A client certificate signed by the CA
- Private keys for server and client
- Public keys (extracted from certificates)
It uses openssl and includes secure defaults (RSA 4096, SHA-256, 365-day validity).