
Certificate Management
----------------------

| Command | Description |
| --- | --- |
| `openssl req -new -key <key> -out <csr>` | Generate a new certificate signing request |
| `openssl req -x509 -key <key> -in <csr> -out <cert>` | Generate a self-signed certificate |
| `openssl x509 -in <cert> -text -noout` | Display the details of a certificate |
| `openssl x509 -in <cert> -pubkey -noout` | Extract the public key from a certificate |
| `openssl x509 -in <cert> -fingerprint -noout` | Display the fingerprint of a certificate |

Key Management
--------------

| Command | Description |
| --- | --- |
| `openssl genrsa -out <key> 2048` | Generate a new RSA private key |
| `openssl rsa -in <key> -pubout -out <pub_key>` | Extract the public key from a private key |
| `openssl rsa -in <key> -out <new_key>` | Convert a private key to a different format |
| `openssl rand -hex 16` | Generate a random hex string |

Certificate Signing
-------------------

| Command | Description |
| --- | --- |
| `openssl ca -in <csr> -out <cert>` | Sign a certificate request |
| `openssl ca -config <config> -in <csr> -out <cert>` | Sign a certificate request with a custom configuration |
| `openssl verify -CAfile <ca> <cert>` | Verify a certificate against a CA file |

Certificate Conversion
----------------------

| Command | Description |
| --- | --- |
| `openssl pkcs12 -export -in <cert> -inkey <key> -out <file>` | Convert a certificate and key to PKCS#12 format |
| `openssl pkcs12 -in <file> -out <cert> -nodes` | Extract a certificate and key from a PKCS#12 file |
| `openssl x509 -in <cert> -outform DER -out <file>` | Convert a certificate to DER format |
| `openssl x509 -in <cert> -outform PEM -out <file>` | Convert a certificate to PEM format |

Encryption and Decryption
-------------------------

| Command | Description |
| --- | --- |
| `openssl enc -aes-256-cbc -salt -in <file> -out <encrypted_file>` | Encrypt a file with AES-256-CBC |
| `openssl enc -d -aes-256-cbc -in <file> -out <decrypted_file>` | Decrypt a file encrypted with AES-256-CBC |
| `openssl dgst -sha256 FILE` | Calculate the SHA-256 hash of a file |
| `openssl dgst -md5 FILE` | Calculate the MD5 hash of a file |

Miscellaneous
-------------

| Command | Description |
| --- | --- |
| `openssl version` | Display the OpenSSL version |
| `openssl s_client -connect <host>:<port>` | Connect to a server using SSL/TLS |
| `openssl s_server -accept <port> -cert <cert> -key <key>` | Start an SSL/TLS server |
| `openssl speed` | Run benchmark tests on OpenSSL algorithms |
| `openssl ciphers -v` | List all available ciphers |
| `openssl rand -base64 32` | Generate a random base64 string |
| `openssl rand -base64 -out <file> 32` | Generate a random base64 string and save it to a file |
| `openssl rand -out <file> 32` | Generate a random binary string and save it to a file |
| `openssl rand -hex 32` | Generate a random hex string |