Translate this page...

LowLevelDev: Code Signierung mit echten Root CAs, wen nehmen?

Es stellt sich für mich immer wieder die Frage, ob die JAR-Dateien unserer Firmen-Projekte signiert werden müssen. Für die meisten Entwicklungen war es nicht notwendig. Nur für spezielle Java ME Projekte brauchte ich Signaturen die auf Root-Zertifikate basieren, die von der VM ohne Klage angenommen werden.

Gerade im ME Bereich ist es recht schwer passende Root CA's zu finden, die auf möglichst vielen Mobiles funktionieren. Und einige Endgeräte Hersteller brauen da sowieso ihre eigenen Süppchen.

Im Java SE/EE Bereich gibt es zumindest einen festen Satz von vorinstallierten Root-CA's die man nicht mehr importieren muss. Das manuelle Importieren kann schon eine Hürde für den Endanwender einer Software sein, die dieser nicht bereit ist zu überspringen.

Aber wie lautet nun die Liste? Es gibt da tatsächlich nichts öffentliches. Trotzdem kann man diese Liste mit einem installierten JDK schnell ermitteln.

Es wird das keytool benötigt, es muss bekannt sein, wo sich die Zertifikate der Root-CA's befinden und es wird das Kennwort für den Keystore gebraucht.

  1. Das keytool findet sich im Ordner "bin" des installierten JDK
  2. Die Datei "cacerts" findet sich im JRE Ordner: "lib/security"
  3. und das Kennwort? Sun verrät es auf seiner Homepage: changeit

Nein das ist kein Witz, es funktioniert ;-)

Also in den "bin"-Ordner wechseln und (z.B. für Windows) folgenden Befehl eingeben:

keytool -list -storepass changeit -keystore {...}\jre\lib\security\cacerts 

Statt {...} gibt man natürlich den Pfad zum JRE an.

Das Ergebnis ist eine Liste mit Aliasnamen der Root-CAs, Datum der Ausstellung, Typ und MD5-Hash.

Meine Java Runtime in Version 1.6_14 enthält 63 Aliasnamen mit zugehörigen Zertifikaten. Mehrere Zertifikate wurden allerdings teilweise von einer Stelle ausgestellt. Z.B. Verisign hat da mehrere Root-Zertifikate hinterlegt.

Mit dem -v Parameter wird die Ausgabe erheblich geschwätziger. Die ca. 80kB große Ausgabe informiert dann genauer über die Aussteller und Eigner der Zertifikate.

Mit dieser (doch sehr umfangreichen) Liste kann man sich übrigens gut auf die Suche machen, um einen Root CA mit passenden Konditionen zu finden. Außerdem läuft man nicht in Gefahr, dass der Anwender (trotz Signatur) genötigt wird ein Root-Zertifikat zu importieren.

Beste Grüße,
  Josch.

 

http://www.netbeans-forum.de/ Da werden Sie geholfen:
Das deutsche NetBeans Forum

      NetBeans Dream Team Member

1 Antwort to “LowLevelDev: Code Signierung mit echten Root CAs, wen nehmen?”

  1. Victor schreibt:

    Wäre interessant zu erfahren für welche Root CA ihr euch letztendlich entschieden habt...?

Hinterlasse eine Nachricht

Meine Informationen merken

CAPTCHA Bild zum Spamschutz 

[Valid RSS]