So konfigurieren Sie nginx + ssl mit einem verschlüsselten Schlüssel im PEM-Format

9

Ich möchte ssl für einen vorhandenen nginx-Server einrichten. Ich erhielt sowohl ein Zertifikat als auch den entsprechenden (verschlüsselten) privaten Schlüssel. Beide sind im PEM-Format (jeweils in einer eigenen Datei).

Über alle Tutorials (zB 1 ) habe ich einen Schlüssel im .key-Format angenommen.

Wenn ich nginx konfiguriere + starte, scheint das Zertifikat bisher akzeptiert zu werden. Ich werde jedoch nach einer PEM-Passphrase für die private Schlüsseldatei gefragt.

Habe ich Recht mit der Annahme, dass meine einzigen Optionen darin bestehen, entweder eine Nginx-Datei "ssl_password_file" mit der Passphrase einzurichten oder openssl / libressl zu verwenden, um die PEM-Datei mit dem verschlüsselten Schlüssel in eine unverschlüsselte .key-Datei wie diese zu konvertieren ?

Wie soll ich sonst mit einem verschlüsselten privaten Schlüssel im PEM-Format umgehen?

Zappl
quelle

Antworten:

12

Sie haben Ihre eigene Frage so ziemlich beantwortet.

Lassen Sie sich nicht von Dateierweiterungen verwirren. Der private Schlüssel, ob passwortgeschützt oder nicht, liegt normalerweise im PEM-Format vor. Wird .pemhäufig für die Zertifikatdatei verwendet, wird also .keyfür den entsprechenden privaten Schlüssel ausgewählt. Die Dateierweiterung ist jedoch irrelevant.

Sie haben also drei Möglichkeiten:

  • Starten Sie den Server manuell und geben Sie das Kennwort an der Konsole ein. Dies ist wahrscheinlich die sicherste Option, aber auch für viele Situationen unpraktisch.
  • Geben Sie eine Kennwortdatei mit ein ssl_password_file
  • Entfernen Sie den Passwortschutz dauerhaft mit openssl

So entfernen Sie beispielsweise das Kennwort aus einem privaten Schlüssel:

openssl rsa -in original.key -out plain.key
Richard Smith
quelle