Wie man unter Linux eine PDF digital signiert


In diesem Beitrag wird erklärt, wie man eine PDF digital signiert – auch ohne den Acrobat Reader.

Geschätzte Lesezeit für diesen Artikel: 4 Minuten

In zunehmend papierlosen Arbeitsumgebungen kann es sehr nützlich sein, eine PDF digital signieren zu können – wohlgemerkt nicht mit der eingescannten eigenhändigen Unterschrift als Bilddatei, sondern mit einer fälschungssicheren digitalen Signatur. Der Empfänger kann die Echtheit des Dokumentes auf diese Weise zweifelsfrei überprüfen. Manche Firmen, z. B. das Carsharing-Unternehmen Drive Now, verschicken ihre Rechnungen schon jetzt per E-Mail in solchen signierten PDF-Dateien. Der Briefkopf sieht in diesem Fall so aus:

Um Dokumente auf diese Art mit schicken und sicheren digitalen Signaturen versehen können, braucht man zunächst ein so genanntes X.509-Zertifikat. Ein solches Zertifikat kann man für die Verschlüsselung von E-Mails nach dem S/MIME-Standard verwenden (erfahre mehr), aber eben auch für das digitale Signieren von PDF-Dokumenten. Wie man ein X.509-Zertifikat bekommt, kann man hier nachlesen.

PDFs lassen sich inzwischen mit vielen Programmen digital signieren, die jedoch meistens gekauft oder abonniert werden müssen. Passende Konfigurationsanleitungen sind leicht im Internet zu finden, z. B. hier.

Nutzer eines Linux-Desktops müssen jedoch zu anderen Lösungen greifen, da zumindest die sehr verbreiteten Adobe-Produkte für Linux nicht verfügbar sind. Es gibt aber Alternativen.

Grundsätzlich ist das Programm MasterPDF unter Linux eine sehr gute Option. Digitale Signaturen lassen sich allerdings nur mit der Premium-Version des Programms erstellen, die aktuell ca. 50 € kostet. Diese Ausgabe lohnt sich vermutlich, wenn man häufig PDFs signiert – selbst habe ich die Premium-Version aber nicht getestet.

Aber auch Linux-Nutzer können kostenlos digital signierte PDFs erstellen:

Erste Möglichkeit:

Die erste Möglichkeit besteht darin, die signierte PDF direkt aus LibreOffice heraus zu erzeugen (eine Anleitung findet sich hier). Die digitale Signatur ist in diesem Fall zwar gültig, allerdings in der Dokumentenansicht nicht zu sehen. Schöner und professioneller sind digitale Signaturen mit Bild und Signaturtext (wie im obigen Beispiel von Drive Now). Daher sollte man evtl. die zweite Möglichkeit in Erwägung ziehen.

Zweite Möglichkeit:

Die zweite Möglichkeit besteht darin, PDFs mit der Java-Anwendung JSignPdf zu signieren. Mit JSignPdf kann man selbst entscheiden, ob die digitale Signatur im Dokument sichtbar sein soll und, wenn ja, ob sie nur als Bild, nur als Text oder aber als Bild und Text dargestellt werden soll. In jedem Fall sind sowohl das Bild als auch der Text frei wählbar. JSignPdf ist Open Source-Software, die für den privaten und kommerziellen Einsatz kostenlos genutzt werden kann. Der tschechische Entwickler der Software, Josef Cacek, hat zwar schon 2012 seinen Rückzug aus dem Projekt erklärt. Dennoch erschien 2014 ein Update, das auch unter aktuellen Linux-Umgebungen (z. B. Ubuntu 16.04) weiterhin einwandfrei funktioniert.

JSignPdf kann hier in einer zip-Datei heruntergeladen werden. Anschließend muss man diese Datei nur entpacken und lokal speichern (z. B. im eigenen home-Verzeichnis). Unter Linux startet man das Programm dann, indem man in das entpackte Verzeichnis navigiert (Name: jsignpdf-1.6.1), dort mit der rechten Maustaste ein Terminal-Fenster öffnet und anschließend folgenden Befehl eingibt:

$ java -jar JSignPdf.jar

Dieser Befehl startet sowohl das Programm als auch seine grafische Oberfläche. Diese ist weitgehend selbsterklärend: Im Wesentlichen muss man in der Maske das eigene Zertifikat auswählen (“Schlüsselbunddatei”), das Passwort zu diesem Zertifikat eingeben, die bereits vorhandene, zu signierende PDF auswählen sowie den Speicherort für die neue, signierte PDF angeben. Das sieht dann ungefähr so aus:

Unter Einstellungen kann man das Signaturbild, das man verwenden möchte, und den Signaturtext festlegen. Unter Einstellungen – Preview & Select kann man sich dann eine Vorschau anzeigen lassen und auswählen, wo im Dokument die digitale Signatur platziert werden soll

Eine ausführliche Bedienungsanleitung für JSignPdf findet man bei Bedarf hier.

Ein wichtiger Hinweis zum Schluss:

Idealerweise werden digitale Signaturen mit einem Zeitstempel versehen. Hierfür muss die aktuelle Zeit von einem Zeitserver im Internet und somit unabhängig von der Systemzeit des Rechners ermittelt werden – diese könnte ja falsch eingestellt sein. So ist zweifelsfrei sicher, dass die Signatur tatsächlich zu dem angegebenen Zeitpunkt erzeugt und nicht etwa vor- oder rückdatiert wurde. Ein solcher Zeitserver ist unter folgender Adresse erreichbar:

https://freetsa.org/tsr

Das Kürzel TSA steht für “Time Stamp Authority”. Eine Anleitung für die Konfiguration von JSignPdf für diesen Zeitserver gibt es praktischerweise auch, und zwar hier.

Viel Spaß beim digitalen Signieren von PDFs!

Wie sind Deine Erfahrungen mit dem Signieren von PDF-Dateien? Hinterlass einen Kommentar!

Update 12.2.2020: In einer früheren Version stand, dass man Dokumente mit dem kostenlosen Adobe Reader digital signieren kann. Das ist nicht korrekt.

Findest Du diesen Beitrag interessant?
→ Teile ihn mit Deinen Freunden (klicke unten auf einen der Buttons)
→ Folge dem Autor auf Twitter (@JochenPlikat) oder abonniere neue Beiträge als E-Mail (klicke oben rechts auf „Folgen“)
→ Unterstütze diese Seite mit einer Spende (klicke oben rechts auf „Donate”)

Wie man unter Linux eine PDF digital signiert by Jochen Plikat is licensed under CC BY-NC-ND 4.0
Bildnachweis: Pen by fill is licensed under CC0 Public Domain

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert