Zum Hauptinhalt springen
  1. Artikel/

Funktionsweise und Erstellung eines SSL-Zertifikats

Funktionsweise und Erstellung eines SSL-Zertifikats #

1. Was ist ein SSL/TLS-Zertifikat? #

Ein SSL/TLS-Zertifikat ist ein digitaler Nachweis über die Identität einer Website oder eines Servers.
Es bestätigt, dass der öffentliche Schlüssel, den ein Server beim Aufbau einer HTTPS-Verbindung präsentiert, tatsächlich zu der angegebenen Domain gehört.

Damit wird sichergestellt:

  • Vertraulichkeit: Daten zwischen Client und Server werden verschlüsselt.
  • Integrität: Daten können nicht unbemerkt verändert werden.
  • Authentizität: Der Nutzer weiß, dass er mit dem richtigen Server spricht.

2. Der Aufbau eines Zertifikats #

Ein Zertifikat enthält u. a.:

Feld Bedeutung
Subject (CN) Domainname, z. B. example.com
Issuer Die ausstellende Zertifizierungsstelle (CA)
Public Key Öffentlicher Teil des Schlüsselpaares
Validity Gültigkeitszeitraum (z. B. 1 Jahr)
Signature Digitale Signatur der CA

3. Der Prozess im Überblick #

 ┌────────────┐         ┌──────────────────────┐         ┌──────────────────────┐
 │  Betreiber │  CSR →  │ Zertifizierungsstelle│  ← OK   │ Browser / Client     │
 └────┬───────┘         └────────────┬─────────┘         └────────────┬─────────┘
      │                              │                                │
      │  (1) Key + CSR erstellen     │                                │
      │─────────────────────────────▶│                                │
      │                              │                                │
      │        (2) Prüfung der Domain│                                │
      │                              │                                │
      │                              │─────────────┐                  │
      │                              │ Zertifikat  │                  │
      │◀─────────────────────────────│ signieren   │                  │
      │                              │─────────────┘                  │
      │                              │                                │
      │        (3) Zertifikat einbinden und konfigurieren             │
      │──────────────────────────────────────────────────────────────▶│
      │                              │                                │

4. Schritt-für-Schritt: Erstellung und Bestätigung #

(1) Schlüsselpaar & CSR erstellen #

Ein CSR (Certificate Signing Request) enthält den öffentlichen Schlüssel und Identitätsdaten.
Der private Schlüssel bleibt geheim und wird niemals an die CA übermittelt.

# Privaten Schlüssel erzeugen
openssl genrsa -out server.key 4096

# CSR erzeugen
openssl req -new -key server.key -out server.csr

Beispielhafte Angaben:

Country Name (2 letter code) [DE]:
State or Province Name (full name) [Niedersachsen]:
Organization Name (e.g., company) [ITC Embedded Systems UG]:
Common Name (e.g. server FQDN) [example.com]:

(2) Zertifikat bei CA einreichen #

Man sendet den CSR an eine Zertifizierungsstelle (CA).
Diese prüft die Identität – z. B. durch:

  • E-Mail-Verifikation (z. B. admin@example.com)
  • DNS-Eintrag (_acme-challenge.example.com)
  • HTTP-Datei auf dem Server (/.well-known/acme-challenge/...)

Ergebnis: eine signierte Zertifikatsdatei (server.crt).


(3) Zertifikat installieren #

Auf einem Webserver wie nginx oder apache werden beide Dateien eingebunden:

server {
  listen 443 ssl;
  server_name example.com;

  ssl_certificate     /etc/ssl/certs/server.crt;
  ssl_certificate_key /etc/ssl/private/server.key;
}

5. Verlängerung (Renewal) #

Zertifikate haben eine begrenzte Lebensdauer (z. B. 90 Tage bei Let’s Encrypt).

Ablauf:

  1. Neuer CSR mit demselben privaten Schlüssel oder einem neuen Schlüssel.
  2. Wiederholung der Validierung (meist automatisch).
  3. Neues Zertifikat installieren.

Bei Let’s Encrypt geschieht das automatisiert über certbot:

sudo certbot renew

6. Zusammenfassung #

Schritt Werkzeug / Akteur Ergebnis
1 openssl Private Key + CSR
2 Zertifizierungsstelle (CA) Signiertes Zertifikat
3 Server-Admin Installation und HTTPS-Konfiguration
4 Automatisierter Prozess Regelmäßige Verlängerung

7. Kurzer Blick „unter die Haube“ #

Bei jeder HTTPS-Verbindung:

  1. Browser fordert Zertifikat vom Server an.
  2. Er prüft:
    • Gültigkeitszeitraum
    • Signatur der CA
    • Domainname
  3. Danach wird ein symmetrischer Sitzungsschlüssel ausgehandelt.
    Nur dieser wird für die laufende Verbindung genutzt (Performance).

Tipp:
Selbstsignierte Zertifikate kann man mit openssl ebenfalls erzeugen.
Diese sind technisch gleichwertig, aber nicht vertrauenswürdig für Browser,
da sie keine CA-Signatur enthalten. Wenn der Server allerdings eh nur im eigenen lokalen Umfeld betrieben wird, ist die Frage gestattet, wer vertrauenswürdiger ist: eine externe ¨Authorität, oder das eigene Unternehmen.

openssl req -x509 -new -nodes -key server.key -sha256 -days 365 -out selfsigned.crt

Weiterführend: