JSignPdf(1)

BEZEICHNUNG
JSignPdf - PDF elektronisch signieren mit X.509-Zertifikaten.

ÜBERSICHT
jsignpdf [file1.pdf [file2.pdf …]] [OPTIONEN]

BESCHREIBUNG
JSignPdf ist eine Anwendung, um PDF Dateien elektronisch zu signieren. Ohne Kommandozeilenargument aufgerufen, wird die grafische Benutzeroberfläche geladen. Andernfalls startet das Programm im Stapelverarbeitungsmodus.

Die Hauptanwendung wird mit Hilfsprogrammen ausgeliefert, um den Arbeitsablauf zu vereinfachen: InstallCert, Verifier und SignatureCounter.

Beachte, dass der offizelle "Adobe Acrobat Reader DC" in Standardeinstellung nur Zerifikate von Ausstellern als gültig anzeigt, die in der AATL (Adobe Approved Trust List) als vertrauenswürdig vermerkt sind.

OPTIONEN

-a, --append
    füge Signatur zu bereits Existierenden hinzu

    Ohne diese Option werden existierende Signaturen durch die Neue ersetzt.

--bg-path <file>
    Pfadangabe für das Hintergrundbild bei sichtbaren Signaturen

--bg-scale <scale>
    Skalierungsfaktor für das Hintergrundbild bei sichtbaren Signaturen

    Ein positiver Wert wird als Faktor interpretiert. Bei Angabe von 0 wird der gesamte Hintergrund gefüllt (stretch). Bei Angabe eines negativen Wertes wird auf beste Passung skaliert.

-c, --contact <contact>
    Kontaktdetails des Signaturinhabers

-cl, --certification-level <level>
    Grad der Zertifizierung

    Standardwert ist NOT_CERTIFIED. Zulässige Werte sind:

    NOT_CERTIFIED,

    CERTIFIED_NO_CHANGES_ALLOWED,

    CERTIFIED_FORM_FILLING,

    CERTIFIED_FORM_FILLING_AND_ANNOTATIONS.

--crl
    aktiviere CRL Zertifikatsvalidierung

-d, --out-directory <path>
    Ausgabeverzeichnis für signierte Dokumente

    Standardpfad ist das aktuelle Verzeichnis.

--disable-acrobat6-layer-mode
    deaktiviere den Acrobat-6-layer Modus, d.h. alle Signaturschichten werden erzeugt

    Acrobat 6.0 und höher empfiehlt, dass nur Schicht n2 und n4 vorhanden sind.

--disable-assembly
    verweigere das Zusammenfügen in verschlüsselten Dokumenten

--disable-copy
    verweigere das Kopieren in verschlüsselten Dokumenten

--disable-fill
    verweigere das Füllen in verschlüsselten Dokumenten

--disable-modify-annotations
    verweigere das Ändern von Anmerkungen in verschlüsselten Dokumenten

--disable-modify-content
    verweigere das Ändern von Inhalten in verschlüsselten Dokumenten

--disable-screen-readers
    verweigere Bildschirmleser in verschlüsselten Dokumenten

-e, --encrypted
    Dieser Schalter ist veraltet, nutze --encryption PASSWORD!

-ec, --encryption-certificate <file>
    Pfadangabe zur Zertifikatsdatei, welche zur Verschlüsselung genutzt wird, wenn --encryption CERTIFICATE angegeben wird

-fs, --font-size <size>
    Schriftgröße für den Text sichtbarer Signaturen mit Standardwert 10.0

-h, --help
    Ausgabe der Bedienungshilfe

-ha, --hash-algorithm <algorithm>
    Hash Algorithmus, welcher für die Signatur genutzt wird

    Standardwert ist SHA1. zulässige Werte sind:

    SHA1,

    SHA256,

    SHA384,

    SHA512,

    RIPEMD160.

--img-path <file>
    Pfadangabe zur Bilddatei für sichtbare Signaturen

-ka, --key-alias <alias>
    Name (alias) für den Schlüssel, welcher für die Signatur des Dokumentes genutzt werden soll

    Wird diese Option nicht angegeben, wird der erste Schlüssel im Schlüsselbund genutzt (Auflistung der Alias mit -lk).

-ki, --key-index <index>
    Mit 0 beginnender Index des Schlüssels, welcher für die Signatur des Dokumentes genutzt werden soll

    Wird weder diese Option, noch <alias> angegeben, wird der erste Schlüssel im Schlüsselbund (index=0) genutzt (Auflistung der Alias mit -lk). Diese Option hat eine geringere Priorität gegenüber <alias>.

-kp, --key-password <password>
    Passwort des Schlüssels im Schlüsselbund

    In den meisten Fällen wird diese Option nicht benötigt - nur Schlüsselbünde sind passwortgeschützt, aber nur für den Fall :)

-ksf, --keystore-file <file>
    Setzt die Schlüsselbunddatei - als Wert wird der Pfad zu den privaten Schlüsseln (.p12, .pfx, .jks, …) angegeben

    Manche Schlüsselbünde, wie z.B. der Windows Schlüsselbund, speichern Schlüssel nicht in einer Datei. In diesem Fall diese Option nicht nutzen.

-ksp, --keystore-password <password>
    Passwort für den Schlüsselbund

-kst, --keystore-type <type>
    Setzt den Schlüsselbundtyp (Auflistung der zulässigen Werte mit -lkt)

-l, --location <location>
    Ort der Signatur (z.B. Washington DC)

    Standardwert ist leer.

--l2-text <text>
    Signaturtext, kann ebenfalls als Platzhalter für Signatureigenschaften dienen:

    ${signer},

    ${timestamp},

    ${location},

    ${reason},

    ${contact}.

--l4-text <text>
    Statustext

-lk, --list-keys
    Auflistung der Schlüssel im gewählten Schlüsselbund.

-lkt, --list-keystore-types
    Auflistung der Schlüsselbundtypen, welche als Werte für die Option -kst zulässig sind.

-llx, <position>
    Position der sichtbaren Signatur auf X-Achse bzgl. Ecke links unten

-lly, <position>
    Position der sichtbaren Signatur auf Y-Achse bzgl. Ecke links unten

-lp, --load-properties
    Lade Einstellungen aus Standarddatei (erzeugt von grafischer Benutzeroberfläche)

-lpf, --load-properties-file <file>
    Lade Einstellungen aus angegebener Datei

    Die Datei kann durch Kopie der Standarddatei angelegt werden, welche durch die grafische Benutzeroberfläche erzeugt wird.

--ocsp
    Aktiviere OCSP Zertifikatsvalidierung

--ocsp-server-url
    Standard OCSP Server URL welche genutzt wird, wenn nicht das zur Signatur verwendete Zertifikat diese Information bereits enthält

-op, --out-prefix <prefix>
    Präfix der signierten Ausgabedatei

    Standardwert ist der leere Präfix.

-opwd, --owner-password <password>
    Besitzerpasswort für die verschlüsselten Dokumente (genutzt mit --encryption PASSWORD Option)

-os, --out-suffix <suffix>
    Suffix der signierten Ausgabedatei

    Standardwert ist "_signed" (z.B. signieren der Datei mydocument.pdf wird die neue Datei mydocument_signed.pdf erzeugen).

-pe, --encryption <mode>
    Verschlüsselungsmodus für die ausgegebene PDF

    Standardwert ist NONE. Benutze die Option zusammen mit -upwd und -opwd im Modus PASSWORD, und -ec im Modus CERTIFICATE. Zulässige Werte sind:

    NONE,

    PASSWORD,

    CERTIFICATE.

-pg, --page <pageNumber>
    Seitennummer für die sichtbare Signatur

    Standardwert ist 1 (erste Seite). Liegt die angegebene Seitennummer außerhalb des Wertebereiches des Dokumentes, wird die letzte Seite genutzt.

-pr, --print-right <right>
    Druckrechte

    Wird im Zusammenhang mit verschlüsselten Dokumenten genutzt. Standardwert ist ALLOW_PRINTING. Zulässige Werte sind:

    DISALLOW_PRINTING,

    ALLOW_DEGRADED_PRINTING,

    ALLOW_PRINTING.

--proxy-host <hostname>
    Hostname oder IP Adresse des Proxyserver

--proxy-port <port>
    Portnummer des Proxyservers mit Standardwert 80

--proxy-type <type>
    Typ des Proxyservers für die Internetverbindung

    Standardwert ist DIRECT. zulässige Werte sind:

    DIRECT,

    HTTP,

    SOCKS.

-q, --quiet
    Stiller Modus - ohne informative Prozessmeldungen

-r, --reason <reason>
    Begründung für die Signatur

    Standardwert ist leer.

--render-mode <mode>
    Rendermodus für sichtbare Signaturen

    Standardwert ist DESCRIPTION_ONLY. zulässige Werte sind:

    DESCRIPTION_ONLY,

    GRAPHIC_AND_DESCRIPTION,

    SIGNAME_AND_DESCRIPTION.

-ta, --tsa-authentication <method>
    Authentifikationsmethode bei Zugriff auf einen TSA Server

    Standardwert ist NONE. Zulässige Werte sind:

    NONE,

    PASSWORD,

    CERTIFICATE.

-ts, --tsa-server-url <URL>
    Adresse des Zeitstempelservers (TSA)

    Wird diese Option genutzt, wird ein Zeitstempel in der Signatur eingebunden. (Für Testzwecke kann folgende URL genutzt werden: http://dse200.ncipher.com/TSS/HttpTspServer)

--tsa-policy-oid <policyOID>
    TSA policy OID, welche für Zeitstempelanfrage genutzt werden soll

-tscf, --tsa-cert-file <file>
    Pfadangabe zur Schlüsselbunddatei, welche den privaten Schlüssel für die Authentifikation gegenüber dem TSA Server enthält, wenn CERTIFICATE als Authentifikationsmethode genutzt wird

-tscp, --tsa-cert-password <password>
    Passwort zum Auslesen der PKCS#12 Datei (siehe -tscf Option), welche einen privaten Schlüssel enthält

-tsct, --tsa-cert-file-type <ks-type>
    Schlüsselbundtyp für die TSA CERTIFICATE Authentifikation - Standardwert ist PKCS12

-tsh, --tsa-hash-algorithme <algorithm>
    Hashalgorithmus für die Anfrage an den Zeitstempelserver (TSA)

    Standardwert ist SHA-1

-tsp, --tsa-password <password>
    TSA Nutzerpasswort

    Nutze diese Option, wenn Zeitstempel genutzt werden (-ts) und der TSA Server Authentifikation benötigt.

-tsu, --tsa-user <username>
    TSA Nutzername

    Nutze diese Option, wenn Zeitstempel genutzt werden (-ts) und der TSA Server Authentifikation benötigt.

-upwd, --user-password <password>
    Nutzerpasswort für verschlüsselte Dokumente (genutzt mit --encryption PASSWORD Option)

-urx <position>
    Position der sichtbaren Signatur auf X-Achse bzgl. Ecke rechts oben

-ury <position>
    Position der sichtbaren Signatur auf Y-Achse bzgl. Ecke rechts oben

-V, --visible-signature
    aktiviert die sichtbare Signatur

-v, --version
    zeigt die Anwendungsversion an

BEISPIELE

  Einfachste Signatur unter Windows
Erzeugt eine Kopie der Datei mydocument.pdf mit dem Namen mydocument_signed.pdf, welche mit dem ersten Schlüssel aus dem Windows Zertifikatsspeicher elektronisch signiert ist.

  $ jsignpdf -kst WINDOWS-MY mydocument.pdf

  PKCS12 Signatur mit Verschlüsselung
Erzeugt ein signiertes und verschlüsseltes Dokument mydocument_signed.pdf mit unterbundener Berechtigung zum Druck. Für die Signatur wird der Schlüssel mit dem Alias cert23 aus der Schlüsselbunddatei my_certificate.pfx genutzt.

  $ jsignpdf -kst PKCS12 -ksf my_certificate.pfx -ksp myPrivateKeystorePassword -ka cert23 \
      -pe PASSWORD -opwd xxx123 -upwd 123xxx -pr DISALLOW_PRINTING mydocument.pdf

  Auflistung der Schlüsselbundtypen
Listet alle Schlüsselbundtypen auf.

  $ jsignpdf -lkt

DATEIEN
Einige erweiterte Optionen können nicht über die Kommandozeile oder der grafischen Benutzeroberfläche angegeben werden. Diese Optionen müssen in der zutreffenden Konfigurationsdatei gesetzt werden.

  conf.properties
Die Datei $INSTALLDIR/conf/conf.properties, wobei $INSTALLDIR wahrscheinlich /usr/share/java/jsignpdf/ lautet, enthält einige Optionsgruppen:

•   Einstellungen zur Schrift sichtbarer Signaturen

•   Steuerung der Zertifikatsüberprüfung

•   PKCS#11 Unterstützung

•   Aktivierung strengerer SSL-Handhabung

  Java VM Optionen
Wenn Einstellungen der Java VM vorgenommen werden müssen (z.B. maximaler Speicherverbrauch), kann das entsprechende Script (z.B. /usr/bin/jsignpdf) angepasst werden und mit dem Schalter -D Konfigurationsparameter übergeben werden. Siehe java(1) für zulässige Parameter. Ein Beispiel:

  #!/bin/sh
  java -Dswing.aatext=true -jar jsignpdf.jar "$@"

EXIT STATUS

0   Programm ohne Fehler beendet

1   Kommandozeile im falschen Format

2   Keine Operation angefordert - z.B. keine Datei zum signieren angegeben

3   Signieren von Einigen, aber nicht allen Dateien fehlgeschlagen

4   Signieren aller Dateien fehlgeschlagen

HILFE BEKOMMEN UND FEHLER MELDEN
Obgleich JSignPdf offiziell seit 2012 nicht länger aktiv weiterentwickelt wird, erscheinen regelmäßig neue Versionen. Diese werden vom Hauptentwickler bereitgestellt und enthalten Fehlerkorrekturen und Beiträge aus der freien Entwicklergemeinde.

Die offizielle Projektverfolgung findet sich hier, scheint jedoch verlassen:

https://sourceforge.net/p/jsignpdf/bugs-change-requests

In der "Google Group" hingegen findet sich rege Beteiligung:

https://groups.google.com/forum/#!forum/jsignpdf

Nicht zuletzt können Fehlermeldungen auch bei der GitHub Projektseite hinterlegt werden.

https://github.com/intoolswetrust/jsignpdf

Der "bug report" sollte immer enthalten:

•   Die Fehlermeldung die bei Ausführung des Programmes ansteht (wenn zutreffend). Wenn die Fehlermeldung nicht von jsignpdf stammt, schildere warum angenommen wird, dass Diese jedoch von jsignpdf verursacht wird.

•   Die komplette Ausgabe des Befehls jsignpdf --version. Wenn nicht die aktuelle Version zum Einsatz kommt (siehe https://sourceforge.net/projects/jsignpdf/files/stable), schildere warum angenommen wird, dass auch die neueste Version den Fehler nicht behebt.

•   Ein komplettes, wiederholbares Minimalbeispiel (siehe Beschreibung auf http://stackoverflow.com/help/mcve).

AUTHOR
JSignPdf wurde geschrieben und wird betreut von "Josef -kwart- Cacek" (http://javlog.cacek.cz/).

Diese Handbuchseite wurde von "Jaja" (jaja@mailbox.org) mithilfe von Informationen aus dem "Quick Start Guide" und der Handbuchseite von "GNU Parallel" als Vorlage erstellt.

LIZENZ
Die Software wurde unter Verweis auf die MPL-1.1 und LGPL-2.1 veröffentlicht.

Eine Kopie der Lizenzen und die Lizenzen der Dritthersteller von genutzten Bibliotheken werden mit dieser Software ausgeliefert. Siehe /usr/share/licenses/jsignpdf.

SIEHE AUCH
Ein ausführlicher "Quick Start Guide" findet sich unter /usr/share/doc/jsignpdf.

jsignpdf-installcert(1), java(1)