locked
Windows Mobile 6: Entwicklerzertifikate aus dem SDK (SamplePrivDeveloper.pfx) abgelaufen seit 31.12.2009 RRS feed

  • Frage

  • Um einen Dienst auf Windows Mobile zu entwickeln, der automatisch beim Start des Geräts geladen wird, signieren wir unsere DLL mit dem bereitgestellten privilegierten Entwicklerzertifikat aus dem 6er SDK für Windows Mobile (besagtes SamplePrivDeveloper.pfx). Das lief bisher auch problemlos, nur sind wir vor ein paar Tagen durch unerwartete Fehlermeldungen darauf gekommen, dass die Zertifikate aus dem SDK alle am 31.12.2009 abgelaufen sind.
    Ich habe auch bereits versucht, das "Windows Mobile 6 Professional SDK Refresh" oder das "Windows Mobile 6.5 Developer Toolkit" zu installieren, wobei bei ersterem anscheinend keine neuen Zertifikate dabei sind, und Letzteres offenbar nur Beispielcodes beinhaltet. Einen WM7 SDK mit neuen Zertifikaten habe ich zumindest noch nicht gefunden. ;-)

    Gibt es irgendwo anders bereits neue Entwicklerzertifikate zum Download (vorzugsweise von Microsoft, aber gerne auch funktionierende Alternativen). Oder was muss ich alternativ beachten, wenn ich eigene Zertifikate so erstellen will, dass sie auf WM als "privilegiert" gelten?

    Besten Dank
    Ralf Stauder
    Donnerstag, 14. Januar 2010 17:23

Antworten

    • Als Antwort markiert Raffo Freitag, 15. Januar 2010 02:09
    Donnerstag, 14. Januar 2010 18:15
  • Danke, der Link war der Schritt in die richtige Richtung. :)

    Fürs Protokoll und andere, die sich hiermit vielleicht noch rumplagen: ich musste allerdings noch einiges tun, um meinen Dienst wieder zum Laufen zu kriegen, da in diesem Zertifikatspaket das Stammzertifikat (SamplePrivRoot.cer) per se offenbar nicht im privilegierten Speicher landet. (Oder ich habe irgendwas komplett falsch gemacht und wäre in diesem Fall über eine Aufklärung dankbar. ^^)

    Mir kam schon etwas spanisch vor, dass in diesem neuen Zertifikatspaket die Stammzertifikate auch "nur" als *.cer vorliegen, und nicht, wie im 6er SDK, als CAB-Installationsdatei. Auf der verlinkten Seite gibt es einen weiterführenden Link in dem erklärt wird, wie man aus dem X.509 *.cer Zertifikat ein "Provisioning File" macht, was dann eben z.B. als CAB installiert werden kann (was dort aber als schlechteste Möglichkeit erwähnt wird). Ich bin diesen Anweisungen also gefolgt bis ich am Ende auch ein _setup.xml hatte nach obiger Anweisung, mit der 3. Zeile: <characteristic type="ROOT">. Ich hatte vorher mehr durch Zufall mal die Certs.cab aus dem 6er SDK genauer angeschaut, in dem auch (wie mir wieder eingefallen ist) nur solch ein Provisioning File war, und habe die beiden verglichen. Nachdem ich dann den "type" besagter "characteristic" aus meinem XML von "ROOT" auf das im SDK verwendete "Privileged Execution Trust Authorities" geändert habe (diese Zeile fertig also so aussah: <characteristic type="Privileged Execution Trust Authorities">), und dann dieses Provisioning File auf meinem Gerät installiert habe, lief auch der Dienst wieder.


    Danke für den Link und beste Grüße,
    Ralf Stauder

    • Als Antwort vorgeschlagen Patrick Getzmann Freitag, 15. Januar 2010 10:35
    • Als Antwort markiert Raffo Freitag, 15. Januar 2010 12:46
    Freitag, 15. Januar 2010 01:34

Alle Antworten

    • Als Antwort markiert Raffo Freitag, 15. Januar 2010 02:09
    Donnerstag, 14. Januar 2010 18:15
  • Danke, der Link war der Schritt in die richtige Richtung. :)

    Fürs Protokoll und andere, die sich hiermit vielleicht noch rumplagen: ich musste allerdings noch einiges tun, um meinen Dienst wieder zum Laufen zu kriegen, da in diesem Zertifikatspaket das Stammzertifikat (SamplePrivRoot.cer) per se offenbar nicht im privilegierten Speicher landet. (Oder ich habe irgendwas komplett falsch gemacht und wäre in diesem Fall über eine Aufklärung dankbar. ^^)

    Mir kam schon etwas spanisch vor, dass in diesem neuen Zertifikatspaket die Stammzertifikate auch "nur" als *.cer vorliegen, und nicht, wie im 6er SDK, als CAB-Installationsdatei. Auf der verlinkten Seite gibt es einen weiterführenden Link in dem erklärt wird, wie man aus dem X.509 *.cer Zertifikat ein "Provisioning File" macht, was dann eben z.B. als CAB installiert werden kann (was dort aber als schlechteste Möglichkeit erwähnt wird). Ich bin diesen Anweisungen also gefolgt bis ich am Ende auch ein _setup.xml hatte nach obiger Anweisung, mit der 3. Zeile: <characteristic type="ROOT">. Ich hatte vorher mehr durch Zufall mal die Certs.cab aus dem 6er SDK genauer angeschaut, in dem auch (wie mir wieder eingefallen ist) nur solch ein Provisioning File war, und habe die beiden verglichen. Nachdem ich dann den "type" besagter "characteristic" aus meinem XML von "ROOT" auf das im SDK verwendete "Privileged Execution Trust Authorities" geändert habe (diese Zeile fertig also so aussah: <characteristic type="Privileged Execution Trust Authorities">), und dann dieses Provisioning File auf meinem Gerät installiert habe, lief auch der Dienst wieder.


    Danke für den Link und beste Grüße,
    Ralf Stauder

    • Als Antwort vorgeschlagen Patrick Getzmann Freitag, 15. Januar 2010 10:35
    • Als Antwort markiert Raffo Freitag, 15. Januar 2010 12:46
    Freitag, 15. Januar 2010 01:34
  • Evtl. kannst Du den Inhalt der XML Datei hier posten? Dann müssen sich andere gar nicht erst abmühen.
    BTW.: Der Security Configuration Manager verwendet auch eine SdkCerts.xml um die Zertifikate auf das Gerät zu bekommen.
    Die kann man einfach durch die neue XMl Datei austauschen und schon funktioniert das auch wieder.
    http://patrickgetzmann.spaces.live.com/blog
    Freitag, 15. Januar 2010 10:37
  • völlig richtig:

    <wap-provisioningdoc>
     <characteristic type="CertificateStore">
      <characteristic type="Privileged Execution Trust Authorities">
       <!-- Fingerabdruck von SamplePrivRoot.cer -->
       <characteristic type="d924e34dec217e9fe4f822e37f59add00208bf20">
        <!-- Base64 encodiertes Zertifikat: SamplePrivRoot.cer -->
        <parm name="EncodedCertificate" value="MIIDoDCCAoygAwIBAgIQnwlNCwkR+6lBijFrLlcH5jAJBgUrDgMCHQUAMEgxRjBEBgNVBAMTPVRFU1QgVVNFIE9OTFkgLSBTYW1wbGUgUHJpdmlsZWdlZCBSb290IGZvciBXaW5kb3dzIE1vYmlsZSBTREswHhcNMTAwMTA4MTkyNDQyWhcNMTUxMjMxMDgwMDAwWjBIMUYwRAYDVQQDEz1URVNUIFVTRSBPTkxZIC0gU2FtcGxlIFByaXZpbGVnZWQgUm9vdCBmb3IgV2luZG93cyBNb2JpbGUgU0RLMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0aiD/dfA1ycjtn3nE7Bg2Phssb1etL0SiBRNpInNP9ljxwBH+OS40RDBYUYqcJaNf6V8LMNAlWFo2IxKiAZYbIDUq/3q5Up5TPjk2woVAW5l2ldrcZWGTy6W0gUJ9NnRC466kNCwPRcV9ZC31HhzyqwF5DKP7nWej+OWW8hUiucXPENkoYcQLI+C4ZVuxSAHUnUBzlVyyEMPsUv/8U98lBnqwAeleHVEaZL0/gDPba/RnRqe1APR3VHGy64D8evJBGkty05mwafC/FJ1NpvpkiLzIGrrsNKmMiDBBe17MA4PpP3hs37NsIdUvbGoyhob5QMojWTL7ZgorIjnTvAOZQIDAQABo4GNMIGKMA0GA1UdCgQGMAQDAgeAMHkGA1UdAQRyMHCAEE9W0LzbViqWumHNjpdE9yuhSjBIMUYwRAYDVQQDEz1URVNUIFVTRSBPTkxZIC0gU2FtcGxlIFByaXZpbGVnZWQgUm9vdCBmb3IgV2luZG93cyBNb2JpbGUgU0RLghCfCU0LCRH7qUGKMWsuVwfmMAkGBSsOAwIdBQADggEBAH3IeSBo47/R4eRetWgpYrGc/XfHhZ+V23g65blCxqhT62pQvgYdmu64ZmG+bRSqpFrJS/y5CKeJycokUwm5QHxWGdaytvFTawZxz9FxI14NHwUky42it+omBk+9SJmOEiz7KjE1szbCUS2D/+MQDyCmqqNB21B/cBcaG0zgkWiAgwZH5QINskaHEgrsVi5Q3RJrYKt65xAzf9N0D3JW2Yy9gA9TgpM7RgStWFIaOWTM3vfHxwj9ZgBLyr7i2zs1JkP3Ab5Ap4gRIZVroNa9AMZ4xAvXmH2Sa3H6PjTxh/FcEw+d+cE+g70x7sNFz87ikhtEYLJ1VgL2bMMkWgFDWe0=" />
       </characteristic>
      </characteristic>
     </characteristic>
    </wap-provisioningdoc>

    als _setup.xml gespeichert und über
    MAKECAB _setup.xml certs.cab
    gepackt, auf dem mobilen Gerät ausführen, fertig ist das neue privilegierte Zertifikat.
    • Bearbeitet Raffo Freitag, 15. Januar 2010 12:43 (XML sauberer formatiert)
    Freitag, 15. Januar 2010 12:38