#language cs
----
'''česky''' | [[Authenticode|english]]
----
= Authenticode =
Máte-li už certifikát pro podpis kódu od CAcert, pak se můžete rozhodnout, že když už jste ho cestou importovali do prohlížeče, pak můžete získat jenom soubor ''.p12'' (z prohlížeče Mozilla/Firefox) nebo ''.pfx'' (z prohlížeče Internet Explorer). Takové soubory jsou kontejnery se strukturou PKCS#12. Soubor obsahuje Váš privátní klíč a obvyklý certifikát (s veřejným klíčem). Většina programů však vyžaduje soubory ''.pvk'' a ''.p7b'' nebo ''.spc'', aby mohly digitálně podepsat soubor pomocí Authenticode.
Tato stránka popisuje, jak můžete rozebrat kontejnerový soubor ''.p12'' | ''.pfx'' na jednotlivé soubory ''.pvk'' a ''.p7b'' | ''.spc'' pro použití s Authenticode. Ochraňujte tyto soubory. Hlavní problém souborů ''.pvk'' je ten, že klíč zde není chráněn heslem. Jastliže jste si však někdy objednal(a) certifikát pro podpis kódu od Thawte, pak víte, že jste dostal(a) dva soubory.
Tento návod je psán se zaměřením na uživatele Windows a z jejich perspektivy. Uživatelé Linuxu nechť laskavě zamění příkazy DOS za příkazy jakéhokoli shellu (řádkového interpretu příkazů), který běžně používají. Tyto instrukce budou platit i pro ně.
== Požadované soubory ==
Pro tyto kroky budete potřebovat soubory:
Doporučuji [[http://www.openssl.org/|OpenSSL]] verze 0.9.7 nebo vyšší.
Uživatelé systémů Linux a Unix by měli použít openssl instalovaný v systému nebo dostupný jako balíček (package). Pro uživatele Windows můžete získat instalační soubor [[http://www.shininglightpro.com/products/Win32OpenSSL.html|OpenSSL]], který ho za Vás nainstaluje.
Program pvktool pro převod z formátu PEM do PVK. Je dostupný pro různé platformy z těchto odkazů. Všechny RPM (balíčky) jsou podepsány [[http://www.jacco2.dds.nl/contact/index.html#RPMsecurity|PGP klíčem]] patřícím Jacco de Leeuw.
Komprimovaný pvktool.zip - [[http://www.drh-consultancy.demon.co.uk/pvktool.zip|PVK pro Win32]]. Z domovské stránky PVK - Steven Henson<
>
Následující odkazy jdou na vlastní web původního autora.<
>
pvktool.zip - [[http://www.jacco2.dds.nl/networking/pvktool.zip|PVK pro Win32]]<
>
pvk-0.12-3jdl.src.rpm - [[http://www.jacco2.dds.nl/networking/SRPMS/pvk-0.12-3jdl.src.rpm|Zdrojový RPM]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
pvk-0.12-3jdl.i386.rpm - [[http://www.jacco2.dds.nl/networking/RPMS/FedoraCore4/pvk-0.12-3jdl.i386.rpm|Fedora Core 4 binární]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
pvk-0.12-3jdl.i386.rpm - [[http://www.jacco2.dds.nl/networking/RPMS/RedHat8.0/pvk-0.12-3jdl.i386.rpm|Red Hat 8.0 binární RPM]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
pvk-0.12-3jdl.i586.rpm - [[http://www.jacco2.dds.nl/networking/RPMS/Mandrake10.0/pvk-0.12-3jdl.i586.rpm|Mandrake 10.0 binární RPM]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
pvk-0.12-3jdl.i586.rpm - [[http://www.jacco2.dds.nl/networking/RPMS/Mandrake9.2/pvk-0.12-3jdl.i586.rpm|Mandrake 9.2 binární RPM]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
pvk-0.12-3jdl.i586.rpm - [[http://www.jacco2.dds.nl/networking/RPMS/Mandrake9.1/pvk-0.12-3jdl.i586.rpm|Mandrake 9.1 binární RPM]] (podržte přemyk [shift] při kliknutí na odkaz)<
>
Od OpenSSL verze 0.9.9 nebude patrně už této utility zapotřebí. Řekli mi, že podpora exportu PVK bude už součástí této verze. Toto wiki bude aktualizováno, jakmile bude dostupná.
== Krok 1: Extrakce z PKCS#12 ==
Windows instalátor standardně umístí openssl do C:\OPENSSL, takže doporučuji aktualizovat cesty příkazem path a přidat adresář k nim. Pokud jste uložili OpenSSL jinam, změňte "path" příslušně. Zde je příklad.
{{{
set PATH=%PATH%;C:\OPENSSL\BIN
}}}
[PATH platí pro okno "DOSu" - fakticky jen černého okna příkazového řádku. Ve Windows linie 2000 a XP až 8 resp. serverů 2000 až 2012 je PATH systému v: Tento počítač - vlastnosti - Upřesnit - tl. Proměnné prostředí.]
Soubory typu PKCS#12 mají často příponu ''.p12'' nebo ''.pfx''. A tak předpokládejme, že Váš soubor PKCS#12 se nazývá '''user.pfx'''. V tomto návodu ovšem zaměňte '''user.pfx''' skutečným názvem svého souboru typu PKCS#12. Pak otevřete "okno DOS" a proveďte tyto příkazy (řádky začínající '#' jsou vysvětlivky, ty nezadávejte):
{{{
# (Tip: na tyto příkazy použijte kopii [Ctrl-C] a vložení [Ctrl-V])
#
# Extrahujte uživatelský certifikát ze souboru typu PKCS#12:
openssl pkcs12 -in user.pfx -nokeys -clcerts -out usercrt.pem
# Extrahujte certifikát(y) CA obsažené v souboru typu PKCS#12:
openssl pkcs12 -in user.pfx -nokeys -cacerts -out cacrt.pem
# Extrahujte privátní klíč obsažený v souboru typu PKCS#12:
openssl pkcs12 -in user.pfx -nocerts -nodes -out userkey.pem
}}}
/!\ Výsledný soubor userkey.pem NENÍ zašifrován! Nenechte ho v systému souborů, jakmile ho už nebude třeba!
== Krok 2: Konverze z PEM ==
Pro tuto etapu předpokládám, že máte tři soubory PEM, nazvané '''userkey.pem''' (privátní klíč), '''usercrt.pem''' (uživatelský certifikát) a '''cacrt.pem''' (certifikát(y) CA). Privátní klíč bude muset být konvertován na PVK, vlastní formát Microsoftu. Certifikáty budou konvertovány do PKCS#7. Ke konverzi PVK budete potřebovat utilitu ''pvktool'' od dr. Stephena N. Hensona, který je členem týmu [[http://www.openssl.org|OpenSSL]]. Je to on, kdo "rozkódoval" formát PVK. Zdrojový kód pro Unix/Linux a verze pro Windows programu PVK jsou dostupné na jeho informační stránce o [[http://www.drh-consultancy.demon.co.uk/pvk.html|PVK]].
Tři soubory PEM (usercrt.pem, cacrt.pem, userkey.pem) převedeme do prozatímních souborů žádaných formátů těmito příkazy OpenSSL:
{{{
# Soubory certifikátů na tvar PKCS#7 (.p7b):
# (Poznámka: druhé klíčové slovo je crl2pkcs7 a ne cr12pkcs7. Třetí písmeno je "malé L" a ne číslice "1".)
openssl crl2pkcs7 -certfile usercrt.pem -certfile cacrt.pem -nocrl -outform PEM -out usercrt.p7b
# Privátní klíč z PEM do tvaru a formátu Microsoft PVK (.pvk)
# (použitím utility pvktool zmíněné výše).
pvk -in userkey.pem -topvk -nocrypt -out userkey.pvk
}}}
/!\ Výsledný soubor userkey.pvk NENÍ zašifrován! Nenechte ho v systému souborů, jakmile ho už nebude třeba!
== Dokončení ==
Je hotovo. Všechno je dokončeno. Nyní můžete tyto dva soubory (userkey.pvk a usercrt.p7b) použít v jakékoli aplikaci, přímo podporující Authenticode. Bylo to otestováno v balíčku "Installshield Package" pro web (můžete-li to najít).
Protože soubory '''userkey.pem''', '''cacrt.pem''' a '''usercrt.pem'''už nejsou potřebné, můžete je nyní smazat. Zvláště ten první.
== Poděkování ==
Tento návod byl převzat z [[http://www.jacco2.dds.nl/networking/crtimprt.html]] s povolením Jacco de Leeuw. Je zpracován podle sekce 5 uvedené stránky.
----
. CategorySoftware