Sign XPI Package

From JonDonym Wiki
Jump to: navigation, search

Contents

Signieren des XPI (Linux/OS X)

Vorbereitung

Als erstes werden die NSS Tools benötigt: Offizielle Build Instructions Diese enthalten sämtliche für die Signierung notwendigen Tools, man kann sie also für spätere Signierungen gleich installiert lassen.

NSS Tools Installieren

cd builddir
hg clone https://hg.mozilla.org/projects/nspr
hg clone https://hg.mozilla.org/projects/nss
cd nss && make nss_build_all && cd ../dist/*.OBJ

Auf einem Mac könnte der *.OBJ Ordner z.B. Darwin14.1.0_DBG.OBJ heißen. Jetzt können die benötigten Tools entweder nach /bin/ kopiert werden oder bei jeder Benutzung eine Environment Variable (LD_LIBRARY_PATH) gesetzt werden.

Datenbank für Certifikate erstellen

mit certutil kann eine Datenbank angelegt werden, in welcher Certifikate abgelegt werden können. Die Datenbank ist dabei ein vorher erstellter Ordner, welcher von certutil genutzt wird. Es können entweder self-signed-certs erstellt werden oder auch vorhandene (manuell) importiert werden. signtool benutzt standartmäßig das .cacert Format des Certifikats aus der angegebenen Datenbank um zu signieren.

mkdir db
certutil -N -d db
Passwort für die Datenbank festlegen (certutil fragt dannach).

Test Certifikat erstellen

Mit signtool kann ein Test Certifikat innerhalb der angegebenen Datenbank erstellt werden (das Passwort der Datenbank ist erforderlich).

signtool -G myTestCert -d db -p "meinpasswort"

signtool wird nach den Benötigten Feldern des Certifikats fragen. Um alle vorhandenen Certifikate in der angegebenen Datenbank auszulesen:

certutil -d db -L

XPI Signieren

Zuerst sollte ein neuer Ordner erstellt werden, in den das XPI entpackt werden kann. Anschließend werden alle Inhalte dieses Ordners mit dem ausgewählten Certifikat aus der angegebenen Datenbank signiert, um dann das XPI wieder zu packen.

mkdir signdir && cd signdir
<xpi nach signdir kopieren>
unzip ./*.xpi && rm ./*.xpi && cd ..
signtool -d db -k myTestCert -p "db_pass" signdir/
cd signdir
zip text.xpi META-INF/zigbert.rsa
zip -r -D text.xpi * -x META-INF/zigbert.rsa

test.xpi ist jetzt mit myTestCert signiert. Zum Testen kann auch myTestCert im FF Browser installiert werden, damit das Certifikat des XPI auch vom Browser wiedererkannt wird. Mehr dazu in den Offiziellen Build Instructions hier (Step 8).

Importieren eines existierenden Certifikats

Todo

Personal tools