Mutual TLS (mTLS) ermöglicht die gegenseitige Authentifizierung zwischen Clients und Servern, wodurch interne Services zuverlässig abgesichert werden. Neben der Verschlüsselung wird sichergestellt, dass nur autorisierte Clients auf bestimmte Dienste zugreifen können. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie mTLS auf Linux konfiguriert und in Nginx oder Apache für interne Services implementiert wird.
Grundlagen von mTLS
mTLS erweitert das normale TLS/SSL, indem nicht nur der Server, sondern auch der Client ein Zertifikat vorlegt. Die Vorteile:
- Authentifizierung beider Seiten
- End-to-End-Verschlüsselung der Kommunikation
- Schutz vor unautorisierten Zugriffen
- Ideal für Microservices oder interne APIs
Zertifikate erstellen
Für mTLS werden eine eigene Zertifizierungsstelle (CA), Server- und Client-Zertifikate benötigt.
CA erstellen
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt -subj "/C=DE/ST=Berlin/L=Berlin/O=Company/OU=IT/CN=MyCA"
Server-Zertifikat erstellen
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=DE/ST=Berlin/L=Berlin/O=Company/OU=IT/CN=server.internal"
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 825 -sha256
Client-Zertifikat erstellen
openssl genrsa -out client.key 2048
openssl req -new -key client.key -out client.csr -subj "/C=DE/ST=Berlin/L=Berlin/O=Company/OU=IT/CN=client1"
openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 825 -sha256
Nginx konfigurieren
Nginx unterstützt mTLS über SSL-Parameter und Client-Zertifikatprüfung.
server {
listen 443 ssl;
server_name internal.example.com;
ssl_certificate /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.key;
ssl_client_certificate /etc/ssl/ca.crt;
ssl_verify_client on;
location /api/ {
proxy_pass http://backend;
proxy_set_header X-SSL-Client $ssl_client_s_dn;
}
}
Apache konfigurieren
Apache verwendet Module mod_ssl und mod_socache_shmcb für mTLS.
<VirtualHost *:443>
ServerName internal.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/server.crt
SSLCertificateKeyFile /etc/ssl/server.key
SSLCACertificateFile /etc/ssl/ca.crt
SSLVerifyClient require
SSLVerifyDepth 2
<Location /api/>
ProxyPass http://backend/
ProxyPassReverse http://backend/
RequestHeader set X-SSL-Client "%{SSL_CLIENT_S_DN}s"
</Location>
</VirtualHost>
Test der mTLS-Verbindung
# Curl-Test mit Client-Zertifikat
curl -v https://internal.example.com/api/ --cert client.crt --key client.key --cacert ca.crt
Netzwerk- und Subnetzplanung
mTLS ist besonders wirksam in isolierten Netzwerken, z. B. interne Subnetze für Microservices.
IPv4 Subnetz
<math>
Service-IP = 192.168.390.10/24
Subnetzadresse = 192.168.390.10 & 255.255.255.0 = 192.168.390.0
Broadcastadresse = 192.168.390.0 | ~255.255.255.0 = 192.168.390.255
</math>
IPv6 Subnetz
<math>
Service-IP = 2001:db8:abcd:390::10/64
Subnetzadresse = 2001:db8:abcd:390:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:390::0
Broadcastadresse = 2001:db8:abcd:390:ffff:ffff:ffff:ffff
</math>
Best Practices
- Eigene interne CA für Microservices verwenden
- Client-Zertifikate regelmäßig erneuern
- Server- und Client-Zertifikate passwortgeschützt speichern
- SSL/TLS-Protokolle und Cipher Suites aktuell halten
- Logs der Zertifikatsprüfung überwachen
- Nur interne IPs für Services zulassen
- Backup der CA und Zertifikate sichern
- Testumgebung für Änderungen nutzen
- Automatisierung für Zertifikat-Rotation einrichten
- Subnetze für interne Services sauber segmentieren
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

