Běžné TLS ověřuje jen server. Mutual TLS ověřuje obě strany. Základ zero trust architektury pro service-to-service komunikaci.
Kdy použít mTLS¶
- Microservices komunikace
- API-to-API komunikace
- IoT zařízení → server
- Zero trust prostředí
Vytvoření certifikátů¶
CA¶
openssl genrsa -out ca-key.pem 4096 openssl req -new -x509 -key ca-key.pem -out ca-cert.pem -days 3650 -subj “/CN=Internal CA”
Server cert¶
openssl genrsa -out server-key.pem 2048 openssl req -new -key server-key.pem -out server.csr -subj “/CN=api.internal” openssl x509 -req -in server.csr -CA ca-cert.pem -CAkey ca-key.pem -out server-cert.pem -days 365
Client cert¶
openssl genrsa -out client-key.pem 2048 openssl req -new -key client-key.pem -out client.csr -subj “/CN=service-a” openssl x509 -req -in client.csr -CA ca-cert.pem -CAkey ca-key.pem -out client-cert.pem -days 365
Nginx mTLS¶
server { listen 443 ssl; ssl_certificate /etc/ssl/server-cert.pem; ssl_certificate_key /etc/ssl/server-key.pem; ssl_client_certificate /etc/ssl/ca-cert.pem; ssl_verify_client on; }
Klíčový takeaway¶
mTLS ověřuje obě strany komunikace. Pro microservices použijte service mesh (Istio, Linkerd).