Site icon bintorosoft.com

mTLS konfigurieren: Client-Zertifikate für interne Services

Dissident social justice crusaders doing online activism, wearing anonymous masks and filming video in underground bunker, blackmailing government after stealing secret military documents

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:

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

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:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version