Know-How
mTLS — Mutual TLS vysvětlení
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).