====== Create an mTLS Cert Package ======
Building mutual TLS (mTLS) certificates using a local Certificate Authority (CA) involves several steps. Here’s a general guide to help you through the process:
==== Step 1: Set Up Your Local Certificate Authority ====
**Create a Private Key for the CA**
openssl genrsa -out ca.key 2048
**Create a Self-Signed Certificate for the CA**
openssl req -x509 -new -nodes -key ca.key -sha256 -days 1024 -out ca.crt
You will be prompted to enter information for the certificate.
==== Step 2: Generate Server and Client Certificates ====
=== For the Server Certificate: ===
**Create a Private Key for the Server**
openssl genrsa -out server.key 2048
**Create a Certificate Signing Request (CSR) for the Server**
openssl req -new -key server.key -out server.csr
**Sign the Server CSR with the CA**
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial \
-out server.crt -days 500 -sha256
=== For the Client Certificate: ===
**Create a Private Key for the Client**
openssl genrsa -out client.key 2048
**Create a Certificate Signing Request (CSR) for the Client**
openssl req -new -key client.key -out client.csr
**Sign the Client CSR with the CA**
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out client.crt -days 500 -sha256
==== Step 3: Verify the Certificates ====
You can verify the certificates to ensure they are correctly signed
**Verify the Server Certificate**
openssl verify -CAfile ca.crt server.crt
**Verify the Client Certificate**
openssl verify -CAfile ca.crt client.crt
==== Step 4: Configure Your Server for mTLS ====
Depending on the server software you are using (e.g., Nginx, Apache, etc.), you will need to configure it to require client certificates and to trust your CA.
==== Step 5: Test the mTLS Setup ====
**Start your server** with the configured certificates.
**Use a client** (like ''%%curl%%'' or a custom application) to connect to the server, providing the client certificate and key.
Example using ''%%curl%%''
curl -v --key client.key --cert client.crt \
--cacert ca.crt https://your-server-url
==== Conclusion ====
This process sets up a basic mTLS configuration using a local CA. Make sure to adjust the configurations based on your specific requirements and security policies.