bg-tutorials

Wie man einen CSR auf FileZilla Server generiert

Dieses Tutorial zeigt Ihnen wie Sie einen CSR für FileZilla Server erzeugen. Beginnen wir mit dem Teil, der am meisten Zeit spart: FileZilla Server kann keine Certificate Signing Request erstellen. Es gibt dafür in keiner Version irgendeine Schaltfläche in der Verwaltungsoberfläche. Der Server kann ein selbstsigniertes Zertifikat erzeugen, automatisch eines von Let’s Encrypt abrufen oder ein von Ihnen bereitgestelltes Zertifikat samt privatem Schlüssel laden, und in diese dritte Option gehört ein Zertifikat einer kommerziellen Zertifizierungsstelle. Die Anfrage wird also außerhalb von FileZilla Server erstellt, mit OpenSSL oder einem Online-Generator, und nur der fertige Schlüssel und das Zertifikat werden dem Server übergeben.

Ein Hinweis zu den Versionen vor den Befehlen, denn er entscheidet, welches Terminal Sie öffnen. FileZilla Server wurde für Version 1.0 im September 2021 neu geschrieben, und die aktuelle Version ist 1.12.6, veröffentlicht im Mai 2026. Debian- und macOS-Pakete kamen mit Version 1.2.0 im Dezember 2021 hinzu; davor lief der Server nur unter Windows, und Windows ist immer noch der Ort, an dem die meisten Installationen zu finden sind. Ältere Anleitungen, die mit „über SSH anmelden“ beginnen, setzen stillschweigend einen Linux-Host voraus. Die veraltete 0.9.x-Reihe endete mit 0.9.60.2 im Februar 2017 und erhält seitdem keine Sicherheitsupdates mehr. Falls Sie diese Version noch nutzen, planen Sie das Upgrade zusammen mit dem Zertifikat.

Was FileZilla Server mit Zertifikaten macht

Es lohnt sich, das Ziel zu betrachten, bevor Sie die Anfrage erstellen, denn es zeigt, welche Form die Dateien haben müssen. Öffnen Sie die Verwaltungsoberfläche von FileZilla Server, verbinden Sie sich mit dem Server, und wählen Sie dann in der Menüleiste Server und Konfigurieren… (Tastenkombination: Strg+F). Öffnen Sie im Baum links Protokolleinstellungen, dann FTP und FTP über TLS (FTPS), dann den Tab Verbindungssicherheit.

Auf dieser Seite finden sich zwei Dinge: ein Menü Mindest zulässige TLS-Version mit den Optionen v1.2 und v1.3, sowie eine Auswahl TLS-Anmeldedaten mit drei Optionen und sonst nichts:

  • Ein X.509-Zertifikat und einen privaten Schlüssel bereitstellen. Zwei Felder, Zertifikat und Privater Schlüssel, die jeweils entweder rohe PEM-Daten akzeptieren, die direkt in die Oberfläche eingefügt werden, oder einen Pfad zu einer Datei auf dem Dateisystem des Servers. Das Schlüsselfeld akzeptiert zusätzlich eine PKCS#11-URL, falls der Schlüssel auf einem Hardware-Token liegt. Darunter befindet sich Passwort des privaten Schlüssels (im Klartext gespeichert). Hier landet ein von einer CA ausgestelltes Zertifikat.
  • Ein selbstsigniertes X.509-Zertifikat verwenden. Eine Schaltfläche Neu erzeugen, die ein Zertifikat erstellt, das der Server selbst signiert. Nützlich für einen geschlossenen Test, aber kein Client vertraut ihm, sodass jede Verbindung eine Warnung erzeugt.
  • Ein Let’s Encrypt®-Zertifikat verwenden. Integrierte ACME-Unterstützung, hinzugefügt in FileZilla Server 1.0. Der Server fordert das Zertifikat selbst an und erneuert es, ohne dass Sie einen CSR bearbeiten müssen.

Keine der drei Optionen erzeugt eine Certificate Signing Request, die Sie an eine Zertifizierungsstelle senden können. FileZilla Server erstellt intern zwar eine solche als Teil des Let’s-Encrypt-Austauschs, aber sie wird nie auf die Festplatte geschrieben oder in der Oberfläche angezeigt, und sie ist an diesen automatisierten Vorgang gebunden.

Zwei Details von diesem Bildschirm sollten Sie im nächsten Abschnitt im Hinterkopf behalten. Erstens werden die Pfadfelder auf der Maschine, auf der die Server-Engine läuft, aufgelöst, nicht auf der Maschine, auf der die Verwaltungsoberfläche läuft, was wichtig ist, da es sich oft um unterschiedliche Computer handelt. Zweitens akzeptiert die Oberfläche das Zertifikat und den Schlüssel auch als eingefügten Text, sodass Sie streng genommen gar keine Dateien auf den Server kopieren müssen. So oder so muss der private Schlüssel, den Sie gleich erstellen, irgendwie auf diese Maschine gelangen, und ihn dort zu erzeugen ist der einfachste Weg.

CSR für FileZilla Server erzeugen

Falls Sie Ihren CSR bereits erzeugt haben, überspringen Sie diesen Abschnitt und gehen Sie direkt zur Installation Ihres SSL-Zertifikats auf FileZilla Server, sobald das Zertifikat ausgestellt wurde. Andernfalls wählen Sie eine der beiden folgenden Möglichkeiten. Beide erzeugen dasselbe Dateipaar.

Option 1: Den SSL Dragon CSR-Generator verwenden

Unser CSR-Generator erstellt die Anfrage und den passenden privaten Schlüssel aus einem einzigen Formular, wodurch Sie sich die Installation von OpenSSL auf einem Windows-Server nur für einen Befehl sparen. Speichern Sie den erzeugten privaten Schlüssel und bewahren Sie ihn an einem sicheren Ort auf. Das von der CA ausgestellte Zertifikat ist ohne ihn wertlos, und niemand kann Ihnen einen Ersatz zusenden.

Option 2: Den CSR mit OpenSSL erzeugen

Wo Sie den Befehl ausführen, hängt vom Betriebssystem ab, auf dem FileZilla Server läuft:

  • Windows. Öffnen Sie die Eingabeaufforderung oder PowerShell. Windows liefert kein OpenSSL mit, Sie benötigen also eines: Git for Windows enthält eine Version, die innerhalb von Git Bash im Pfad liegt, oder Sie installieren ein eigenständiges Windows-OpenSSL-Paket, oder Sie nutzen das Windows-Subsystem für Linux. Führen Sie in jedem Fall zuerst openssl version aus und stellen Sie sicher, dass eine Antwort erfolgt.
  • Linux. Öffnen Sie ein Terminal auf dem Server, oder verbinden Sie sich per SSH. OpenSSL ist bei gängigen Distributionen standardmäßig installiert.
  • macOS. Öffnen Sie das Terminal. Der Befehl openssl unter macOS ist eine LibreSSL-Version und kein OpenSSL, was für einige der unten genannten Optionen relevant ist. Jeder Befehl in diesem Tutorial wurde auf beiden Versionen getestet und funktioniert auf beiden.

Wechseln Sie in ein Verzeichnis, das Sie wiederfinden können, und führen Sie dann diesen einzelnen Befehl aus. Er erstellt den privaten Schlüssel und die Anfrage gemeinsam:

openssl req -new -newkey rsa:2048 -nodes -keyout ftp.yourdomain.com.key -out ftp.yourdomain.com.csr -addext "subjectAltName=DNS:ftp.yourdomain.com"

Was jeder Teil bewirkt:

  • req -new erstellt eine neue Certificate Signing Request.
  • -newkey rsa:2048 erzeugt gleichzeitig einen neuen 2048-Bit-RSA-Schlüssel. Das ist der kleinste Schlüssel, den öffentliche CAs signieren. Verwenden Sie rsa:4096, wenn Ihre Sicherheitsrichtlinie dies verlangt.
  • -nodes schreibt den privaten Schlüssel ohne Passphrase, damit FileZilla Server ihn nach einem Neustart unbeaufsichtigt lesen kann. Verwenden Sie diese Schreibweise und nicht den neueren Alias -noenc: OpenSSL 3.x akzeptiert beide, aber die LibreSSL-Version, die macOS als openssl mitliefert, lehnt -noenc ab und gibt stattdessen die Nutzungsübersicht aus, statt auszuführen.
  • -keyout und -out benennen die beiden Ausgabedateien. Diese nach dem Host zu benennen ist besser als server.key und server.csr, denn in einem Jahr werden Sie mehrere davon haben.
  • -addext "subjectAltName=..." trägt den Hostnamen in die Subject-Alternative-Name-Erweiterung ein. Überspringen Sie das nicht. Die CA/Browser Forum Baseline Requirements beschreiben den Common Name inzwischen als nicht empfohlen und verlangen, dass jeder Wert darin aus den SAN-Einträgen abgeleitet wird, sodass die SAN-Liste maßgeblich ist.

Für mehrere Hostnamen oder für eine Wildcard erweitern Sie dieselbe Option mit einer durch Kommas getrennten Liste. Wiederholen Sie den Common Name darin:

-addext "subjectAltName=DNS:ftp.yourdomain.com,DNS:files.yourdomain.com"
-addext "subjectAltName=DNS:*.yourdomain.com,DNS:yourdomain.com"

Falls Sie lieber einen Schlüssel mit elliptischen Kurven verwenden möchten, finden Sie unten den entsprechenden Befehl. Prüfen Sie zuvor, ob Ihre Zertifizierungsstelle ECDSA-Zertifikate für das von Ihnen gekaufte Produkt ausstellt, da dies nicht bei jeder Marke der Fall ist.

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes -keyout ftp.yourdomain.com.key -out ftp.yourdomain.com.csr -addext "subjectAltName=DNS:ftp.yourdomain.com"

Die zweite -pkeyopt-Option ist keine Formsache. Bei OpenSSL ändert sie nichts, da eine benannte Kurve bereits die Voreinstellung ist, aber bei der mit macOS ausgelieferten LibreSSL-Version führt ihr Fehlen dazu, dass die Anfrage die Kurve beschreibt, indem alle ihre Parameter ausgeschrieben werden, statt sie zu benennen. RFC 5480 verbietet diese Form in öffentlichen Zertifikaten, und eine so erstellte Anfrage identifiziert überhaupt keine Kurve.

Die Fragen beantworten

OpenSSL fragt nun nach den Details, die in die Anfrage eingehen, in dieser Reihenfolge:

  1. Country Name (2 letter code): der zweibuchstabige Code für Ihr Land, zum Beispiel US. Hier finden Sie die vollständige Liste der Ländercodes.
  2. State or Province Name (full name): vollständig ausgeschrieben. Bayern, nicht BY.
  3. Locality Name (eg, city): der vollständige Name der Stadt, zum Beispiel München.
  4. Organization Name (eg, company): der exakte rechtliche Name Ihrer Organisation, zum Beispiel Beispiel Holding GmbH. Wenn Sie ein Domain-Validation-Zertifikat kaufen, prüft oder verwendet die CA dieses Feld nicht, sodass es weggelassen werden kann.
  5. Organizational Unit Name (eg, section): weglassen. Seit dem 1. September 2022 führen die CA/Browser Forum Baseline Requirements dieses Attribut als eines auf, das CAs nicht einbeziehen dürfen, sodass alles, was Sie eingeben, verworfen wird.
  6. Common Name: der vollständig qualifizierte Hostname, mit dem sich Ihre FTPS-Clients verbinden, zum Beispiel ftp.yourdomain.com, oder die Wildcard *.yourdomain.com. Der Wortlaut dieser Frage unterscheidet sich leicht zwischen den Versionen, aber in der Standardkonfiguration ist es die sechste Frage.
  7. Email Address: optional und normalerweise weggelassen.
  8. A challenge password: weglassen. Es handelt sich um ein veraltetes Attribut der Anfrage selbst, es gelangt nie in das ausgestellte Zertifikat, und Bestellformulare fragen nicht danach.
  9. An optional company name: ebenfalls weglassen.

Eine Falle, die Sie kennen sollten, bevor Sie mit dem Tippen beginnen. „Weglassen“ bedeutet nicht „Eingabetaste drücken“. Mehrere Felder tragen einen Standardwert aus der OpenSSL-Konfigurationsdatei, der in eckigen Klammern am Ende der Frage angezeigt wird, und das Drücken der Eingabetaste übernimmt diesen Standardwert, statt das Feld leer zu lassen. Bei einer Standard-OpenSSL-Konfiguration führte das Drücken der Eingabetaste bei den ersten Fragen zu einer Anfrage mit C=AU, ST=Some-State und O=Internet Widgits Pty Ltd, was niemand an eine Zertifizierungsstelle senden möchte. Um ein Feld wirklich leer zu lassen, geben Sie einen einzelnen Punkt ein und drücken Sie die Eingabetaste. OpenSSL weist genau darauf in der Vorbemerkung hin, die direkt über den Fragen ausgegeben wird.

Sobald die letzte Frage beantwortet ist, haben Sie zwei neue Dateien im aktuellen Verzeichnis:

  • ftp.yourdomain.com.csr: die Certificate Signing Request. Diese fügen Sie in Ihr Bestellformular ein.
  • ftp.yourdomain.com.key: der private Schlüssel. Er geht nie an die Zertifizierungsstelle und verlässt niemals Ihre Kontrolle. Wer ihn besitzt, kann sich als Ihr Server ausgeben. Beschränken Sie daher, wer ihn lesen darf, und sichern Sie ihn an einem Ort, auf den Sie auch in drei Jahren noch Zugriff haben. Geht er verloren, wird das ausgestellte Zertifikat unbrauchbar: Sie müssen eine neue Anfrage erstellen und eine erneute Ausstellung beantragen.

CSR vor der Bestellung überprüfen

Ein Tippfehler in der Anfrage bedeutet, dass die CA ein Zertifikat ausstellt, das Sie nicht verwenden können, und die Behebung kostet eine weitere Validierungsrunde. Lesen Sie die Anfrage noch einmal durch, bevor Sie sie einreichen:

openssl req -noout -text -verify -in ftp.yourdomain.com.csr

Prüfen Sie drei Dinge in der Ausgabe: die Subject-Zeile enthält die Angaben, die Sie eingeben wollten, der Subject-Alternative-Name-Abschnitt listet jeden Hostnamen auf, den Clients verwenden werden, und die Signaturprüfung besteht. OpenSSL 3.x meldet Letzteres als Certificate request self-signature verify OK, während die LibreSSL-Version unter macOS es zu verify OK verkürzt. Beides bedeutet dasselbe. Falls Sie nicht in der Befehlszeile arbeiten möchten, fügen Sie die Anfrage stattdessen in unseren CSR-Decoder ein.

Es lohnt sich auch zu bestätigen, dass der Schlüssel auf der Festplatte tatsächlich derjenige ist, aus dem diese Anfrage erstellt wurde, besonders wenn Sie mehrere generiert haben. Der Vergleich der öffentlichen Schlüssel funktioniert bei jedem Schlüsseltyp und sowohl mit OpenSSL als auch mit LibreSSL:

openssl req -noout -pubkey -in ftp.yourdomain.com.csr
openssl pkey -pubout -in ftp.yourdomain.com.key

Die beiden Blöcke müssen identisch sein, Zeichen für Zeichen. Dies ist die portable Variante des bekannteren Modulus-und-md5-Vergleichs, der nur für RSA-Schlüssel funktioniert und ein gesundes Schlüsselpaar mit elliptischen Kurven fälschlicherweise als Fehlübereinstimmung meldet.

Öffnen Sie schließlich die Datei .csr in einem einfachen Texteditor wie Notepad oder TextEdit und kopieren Sie den gesamten Block, einschließlich der ersten und letzten Zeile:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
... (many lines of base64) ...
-----END CERTIFICATE REQUEST-----

Jede Markierungszeile besteht aus genau fünf Bindestrichen, den Worten, dann wieder fünf Bindestrichen. Tippen Sie sie nicht von Hand ab und fügen Sie sie nicht über eine Textverarbeitung ein, die Reihen von Bindestrichen möglicherweise in Gedankenstriche umwandelt und so eine Anfrage erzeugt, die die CA als fehlerhaft zurückweist.

Wenn Sie überhaupt keinen CSR benötigen

Seit Version 1.0 kann FileZilla Server selbstständig ein kostenloses Let’s-Encrypt-Zertifikat beziehen und erneuern, ohne dass Sie eine Anfrage erstellen oder Dateien importieren müssen. Derselbe Einstellungsdialog enthält eine übergeordnete Seite Let’s Encrypt®, unterhalb von Protokollierung im Baum. Aktivieren Sie Let’s Encrypt®-Zertifikatserzeugung aktivieren, klicken Sie auf Neues Konto erstellen und akzeptieren Sie die Nutzungsbedingungen. Wählen Sie dann unter Wie sollen die Challenges durchgeführt werden, ob FileZilla Server sie mit seinem eigenen internen Webserver beantworten soll (standardmäßig wird Port 80 vorgeschlagen) oder ob Sie auf den Ordner verweisen, den ein vorhandener Webserver zur Beantwortung von Anfragen unter /.well-known/acme-challenge/ verwendet. Danach wählen Sie Ein Let’s Encrypt®-Zertifikat verwenden im Tab Verbindungssicherheit und lassen Automatisch versuchen, das Zertifikat rechtzeitig zu erneuern aktiviert.

Zwei Einschränkungen entscheiden, ob das für Sie realistisch ist. Der Server beantwortet ausschließlich HTTP-Validierungs-Challenges, sodass der Hostname während der Ausstellung des Zertifikats und bei jeder Erneuerung über den Challenge-Port aus dem Internet erreichbar sein muss. Und da Wildcard-Zertifikate von Let’s Encrypt eine DNS-basierte Validierung erfordern, die FileZilla Server nicht durchführt, können Sie auf diesem Weg keine Wildcard erhalten.

Der oben beschriebene CSR-Weg ist daher weiterhin der richtige, wenn Sie eine Wildcard, ein Organization-Validation- oder Extended-Validation-Zertifikat oder ein Zertifikat für einen nicht dem Internet ausgesetzten Server benötigen. Unsere ACME-Tutorials behandeln die automatisierte Ausstellung ausführlicher. Die verbleibende Option, die Schaltfläche Neu erzeugen unter Ein selbstsigniertes X.509-Zertifikat verwenden, ist nur zum Testen gedacht: Sie bringt FTPS in Sekunden zum Laufen, und sie sorgt dafür, dass jeder Client eine Warnung anzeigt, die Nutzer schnell lernen wegzuklicken.

Häufig gestellte Fragen

Kann FileZilla Server einen CSR erzeugen?

Nein. Die Verwaltungsoberfläche bietet drei Möglichkeiten, dem Server ein Zertifikat zu geben, und keine davon erzeugt eine Anfrage, die Sie an eine Zertifizierungsstelle senden können: Bereitstellen eines bereits vorhandenen Zertifikats und privaten Schlüssels, Erzeugen eines selbstsignierten Zertifikats oder automatischer Bezug von Let’s Encrypt. Erzeugen Sie den CSR mit OpenSSL oder mit unserem CSR-Generator, und laden Sie dann den erzeugten Schlüssel und das ausgestellte Zertifikat über die erste dieser drei Optionen.

Wie lautet der OpenSSL-Befehl zum Erzeugen eines CSR für FileZilla Server?

Führen Sie dies auf der Maschine aus, die FileZilla Server hostet, und ersetzen Sie den Hostnamen durch Ihren eigenen:
openssl req -new -newkey rsa:2048 -nodes -keyout ftp.yourdomain.com.key -out ftp.yourdomain.com.csr -addext "subjectAltName=DNS:ftp.yourdomain.com"
Er schreibt die Anfrage und den privaten Schlüssel nebeneinander und fragt dann nach Ihren Organisationsdaten.

Wo führe ich den Befehl aus, wenn FileZilla Server unter Windows läuft?

In der Eingabeaufforderung, PowerShell oder Git Bash auf dem Server selbst. Windows verfügt über kein integriertes OpenSSL, installieren Sie also zuerst eines: Git for Windows enthält eine geeignete Version, und es gibt auch eigenständige Windows-Pakete. Führen Sie openssl version aus, um zu bestätigen, dass der Befehl verfügbar ist, bevor Sie fortfahren. Anleitungen, die Sie anweisen, sich per SSH zu verbinden, setzen einen Linux-Host voraus, den FileZilla Server erst seit Version 1.2.0 unterstützt.

Ich habe bereits eine .pfx-Datei. Benötige ich trotzdem einen CSR?

Nein. Ein .pfx- oder .p12-Bundle enthält bereits ein Zertifikat und den zugehörigen privaten Schlüssel, sodass nichts mehr angefordert werden muss. Es liegt jedoch im falschen Format vor: Die Zertifikats- und Schlüsselfelder von FileZilla Server sind als PEM dokumentiert, und das Einfügefeld ist als PEM erwartend gekennzeichnet. Teilen Sie das Bundle in die beiden PEM-Dateien auf, die der Server verlangt, und geben Sie dabei das Passwort des Bundles ein, wenn Sie danach gefragt werden:
openssl pkcs12 -in bundle.pfx -nokeys -out certificate.pem
openssl pkcs12 -in bundle.pfx -nocerts -nodes -out privatekey.pem
Beide Dateien enthalten oberhalb jedes Blocks einige Bag-Attributes-Zeilen, die unbedenklich sind und beibehalten oder gelöscht werden können.

Muss ich FileZilla Server nach dem Erzeugen des CSR neu starten?

Nein. Das Erstellen einer Anfrage schreibt nur zwei Dateien auf die Festplatte und ändert nichts an der laufenden Tätigkeit des Servers. FileZilla Server weiß erst von der Existenz der Anfrage, wenn Sie das ausgestellte Zertifikat laden, und wendet dieses über den Tab Verbindungssicherheit an, ohne dass eine Neuinstallation nötig ist.

Unterscheidet sich der CSR-Prozess bei FileZilla Server 0.9.x?

Die Anfrage selbst ist identisch, da Sie sie in beiden Fällen mit OpenSSL erstellen. Geändert hat sich, wohin die fertigen Dateien gehen. Die Verwaltungsoberfläche von 0.9.x platzierte die Zertifikatseinstellungen unter Bearbeiten und Einstellungen, während 1.x Server, Konfigurieren… und den oben beschriebenen Tab Verbindungssicherheit verwendet. Die 0.9.x-Reihe erhielt zuletzt im Februar 2017 eine Veröffentlichung und bekommt keine Sicherheitsupdates mehr, behandeln Sie also jede Arbeit damit als vorübergehend.

Sparen Sie 10% auf SSL-Zertifikate, wenn Sie noch heute bestellen!

Schnelle Ausstellung, starke Verschlüsselung, 99,99% Browser-Vertrauen, engagierter Support und 25-tägige Geld-zurück-Garantie. Gutscheincode: SAVE10

A detailed image of a dragon in flight
Geschrieben von

Erfahrener Content-Autor, spezialisiert auf SSL-Zertifikate. Verwandeln Sie komplexe Cybersicherheitsthemen in klare, ansprechende Inhalte. Tragen Sie durch wirkungsvolle Narrative zur Verbesserung der digitalen Sicherheit bei.