Native Installation: Zertifikat erneuern

Bei einer nativen Installation unter Windows oder Linux liefert nginx das SSL-Zertifikat aus. Wurde das neue Zertifikat mit einem neuen Schlüsselpaar (neue CSR) ausgestellt, wird zusätzlich die Datei server.key durch den neuen privaten Schlüssel ersetzt. Wurde dieselbe CSR verwendet, bleibt server.key unverändert.

Die Datei server.pem enthält das Serverzertifikat samt Zwischenzertifikaten. Ein gekauftes Zertifikat wird zunächst nach Gekauftes Zertifikat erneuern → vorbereitet; dort ist auch die Umwandlung aus anderen Formaten wie PFX beschrieben.


Windows

Bei einer Windows-Installation wird wie folgt vorgegangen:

  1. Zertifikat und Schlüssel liegen standardmäßig unter %ProgramFiles%\nginx\server.pem und %ProgramFiles%\nginx\server.key. Befinden sich die Dateien nicht dort, zeigt die Datei nginx.conf, wo sie abgelegt wurden. Die Datei liegt üblicherweise unter %ProgramFiles%\nginx\conf\nginx.conf.

  2. Innerhalb dieser Datei stehen die Pfade in folgendem Abschnitt. Relative Pfade bezieht nginx auf das Verzeichnis der nginx.conf (%ProgramFiles%\nginx\conf).

    nginx.conf
    ssl_certificate      "C:/Program Files/nginx/server.pem";
    ssl_certificate_key  "C:/Program Files/nginx/server.key";
    
  3. Die server.pem-Datei wird durch die des neuen Zertifikats ersetzt oder in einem Editor (als Administrator ausgeführt) geöffnet und ihr Inhalt durch den des neuen Zertifikats ersetzt. Bei einem neuen Schlüsselpaar wird zusätzlich die Datei server.key ersetzt, deren Pfad unter ssl_certificate_key steht.

  4. Im Anschluss wird die Konfiguration in einer als Administrator geöffneten Eingabeaufforderung im Verzeichnis %ProgramFiles%\nginx mit nginx.exe -t geprüft; dabei fällt auch ein nicht zum Zertifikat passender Schlüssel auf. Anschließend wird der Dienst nginx mit sc stop nginx und sc start nginx oder über die Dienstverwaltung (services.msc) neu gestartet. Startet nginx nicht, gibt die Datei %ProgramFiles%\nginx\logs\error.log Aufschluss.

  5. Ob nginx das neue Zertifikat ausliefert, zeigen die Zertifikatsdetails im Browser beim Aufruf von Relution, etwa anhand des neuen Ablaufdatums.


Linux (Rocky/Alma)

Bei einer nativen Linux-Installation wird wie folgt vorgegangen:

  1. Zunächst wird geprüft, ob das abgelaufene Zertifikat an der Stelle /etc/pki/tls/certs/server.pem vorhanden ist. Befindet sich die Datei nicht dort, zeigen die Einträge ssl_certificate, ssl_certificate_key und ggf. ssl_trusted_certificate in /etc/nginx/conf.d/relution-ssl.conf den tatsächlichen Ablageort.

  2. Ist dies der Fall, wird eine Kopie erstellt, die Datei geöffnet, der Inhalt entfernt und der Inhalt des neuen Zertifikats in die server.pem-Datei hineinkopiert.

  3. Alternativ lässt sich die bestehende Datei auch umbenennen und das neue Zertifikat unter dem Namen server.pem in diesem Pfad ablegen:

    sudo mv /etc/pki/tls/certs/server.pem /etc/pki/tls/certs/server.pem.old
    sudo mv server.pem /etc/pki/tls/certs
    sudo chown root:root /etc/pki/tls/certs/server.pem
    sudo chmod 644 /etc/pki/tls/certs/server.pem
    sudo restorecon -v /etc/pki/tls/certs/server.pem
    

    Wenn SELinux im Enforcing-Modus betrieben wird (Standard), stellt restorecon den korrekten Sicherheitskontext wieder her. Andernfalls kann SELinux nginx den Zugriff auf das Zertifikat verweigern (siehe Veraltet: Linux (Alma) →).

    Bei einem neuen Schlüsselpaar wird zusätzlich der private Schlüssel ersetzt:

    sudo mv server.key /etc/pki/tls/private
    sudo chown root:root /etc/pki/tls/private/server.key
    sudo chmod 600 /etc/pki/tls/private/server.key
    sudo restorecon -v /etc/pki/tls/private/server.key
    

    Wird OCSP Stapling verwendet, wird zusätzlich die Datei der Zertifikatskette (ssl_trusted_certificate) erneuert.

  4. Im Anschluss wird die Konfiguration mit sudo nginx -t geprüft; dabei fällt auch ein nicht zum Zertifikat passender Schlüssel auf. Anschließend wird der Dienst mit sudo systemctl restart nginx neu gestartet. Startet nginx nicht, gibt die Datei /var/log/nginx/error.log Aufschluss.

  5. Ob nginx das neue Zertifikat ausliefert, zeigen die Zertifikatsdetails im Browser beim Aufruf von Relution, etwa anhand des neuen Ablaufdatums.

Top