Software elektronisch unterschreiben

Wenn Sie eine digitale ID (Zertifikat) verwenden möchten, um selbst entwickelte Software (Microsoft-Office-Makros, Java-JARs) elektronisch zu unterschreiben, dann benötigen Sie für diesen Zweck einen Yubikey 5 FIPS (kann vom UCAM ausgeliehen werden) und ein spezielles Code-Signing-Zertifikat.

Für ein solches Code-Signing-Zertifikat wenden Sie sich bitte per signierter E-Mail an ca@uni-muenster.de. Sie erhalten dann per E-Mail weitere Informationen.

Da das Code-Signing-Zertifikat nicht auf eine Einzelperson oder eine Gruppe, sondern auf die Universität bzw. die Kunstakademie als Ganzes ausgestellt wird, dürfen nur Bedienstete mit Finanzverantwortung Code-Signing-Zertifikate beantragen.

Beantragung nach vorheriger Einladung

PIN (6–8 Ziffern), PUK (8 Ziffern) und Management Key (48 Hexziffern) gut wählen!

Komplett-Reset (nur) des PIV-Moduls im Yubikey 5 FIPS:
ykman piv reset --force
ykman piv change-pin -P 123456
ykman piv change-puk -p 12345678
ykman piv change-management-key -m 010203040506070801020304050607080102030405060708

CSR erzeugen:
yubico-piv-tool -a generate --slot=9c --pin-policy=once -k -A ECCP384 -o pub.key
ykman piv certificates request -s "CN=UCAM" 9c pub.key req.csr

Attestation zusammenstellen:
yubico-piv-tool --action=attest --slot=9c >attest.pem
yubico-piv-tool --action=read-certificate --slot=f9 >chain.pem

Unter Linux/MacOS:
cat attest.pem chain.pem | base64 -w64 - >attest.txt

Unter Windows:
type attest.pem chain.pem >work.pem
certutil -encode work.pem work.txt
findstr /v CERTIFICATE work.txt >attest.txt

Für den Antrag auf der Einladungsseite werden req.csr und der Inhalt von attest.txt benötigt. Die auf der Seite angegebene E-Mail-Adresse wird ins Zertifikat aufgenommen, der Name nicht.

Wenn nach Stunden bis Tagen die E-Mail eingeht, das Zertifikat mit dem Link „as Certificate only, PEM encoded“ herunterladen, als cert.pem speichern und importieren:
ykman piv certificates import 9c cert.pem

Kurze Hinweise zur Benutzung

  • Windows Code Signing siehe Yubico-Anleitung

  • Java Code Signing mit jarsigner:

    • Yubico PKCS#11-Library „ykcs11“ installieren

    • Das Zertifikat aus der E-Mail mit dem Link „as Certificate (w/ issuer after)“ herunter laden und als certchain.pem speichern

    • Datei ykcs11.conf anlegen mit:
      name = ykcs11
      library = /path/to/libykcs11.so

    • Datei xxxxx.jar signieren mit (in einer Zeile):
      jarsigner -keystore NONE -certchain certchain.pem -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg ykcs11.conf xxxxx.jar "X.509 Certificate for Digital Signature"