Certifikáty Code Signing pro podpis kódu jsou méně obvyklým typem SSL certifikátu, jejich použití je však zásadní pro bezpečnost aplikací na PC platformě a mobilních zařízeních. Dnešní článek ukáže, jak prakticky zažádat a použít Code Signing pro Javu.
Logo Java

Jak zažádat certifikát pro Javu

Krom samotného objednání certifikátu pro podpis kódu na SSLmarketu je třeba vyřešit i kryptografické aspekty, jako je CSR request a privátní klíč.

Po podepisování Java aplikací a appletů budete potřebovat JDK (Java Development Kit) distribuovaný Oraclem. Pro práci s certifikátem a k podpisu budete potřebovat programy keytool, jar, a jarsigner z tohoto balíku.

Vytvoření Keystore a privátního klíče

Před vygenerováním žádosti o certifikát, což je veřejný klíč, potřebujete vytvořit váš klíč privátní. Provedete to příkazem

keytool -genkey -keyalg rsa -keystore -alias -keysize 2048

Keystore vás vyzve k jeho pojmenování, vytvoření jeho aliasu a hesla pro keystore. Zeptá se i na název vaší společnosti.

Dvojice klíčů je po vytvoření uložena v Keystore a privátní klíč v žádném případě nikam neposílejte.

Nyní vytvořte CSR request, který je potřeba pro objednávku certifikátu. Budete vyzvání k zadání upřesňujících informací.

keytool -certreq -file certreq.csr -keystore -alias <alias_name>

Vytvořený CSR request vložte do objednávky Code Signing certifikátu na SSLmarketu.

Jak s certifikátem podepisovat

Import certifikátu do Keystore

Autorita po ověření vaší společnosti certifikát vydá a obdržíte ho od SSLmarketu e-mailem. Před použitím je třeba ho naimportovat do vašeho keystore příkazem:

keytool -import -trustcacerts -keystore -alias -file cert.p7b

Upozorňuji, že importovaný P7B soubor není námi zaslaný Intermediate certifikát. Je nutné si SSL certifikát od SSLmarketu z PEM formátu (Base64) převést do formátu PKCS#7, tedy P7B, a potom naimportovat spolu s intermediatem. K tomu poslouží článek Základy práce s OpenSSL – export, import, převody formátů.

Podpis aplikací a appletů

Pro podpis Jar souboru využijte aplikace jarsigner.

jarsigner -keystore <keystore_filename> <umístění (např. C:\TestApplet.jar)> <alias_name>

Časovou značku (timestamp) přidáte příkazem:

jarsigner -tsa sha256timestamp.ws.symantec.com/sha256/timestamp -keystore keystore_filename> <path to Applet (ie. C:\TestApplet.jar)> <alias_name>

Při podpisu budete vyzvání k zadání hesla Keystoru, které jste vytvořili při jeho založení.

Kontrola podpisu

Jistě budete chtít váš nový podpis zkontrolovat. To můžete provést příkazem

jarsigner -verify -verbose -certs C:\TestApplet.jar

Pokud je vše v pořádku, můžete podepsanou aplikaci publikovat na internetu a zpřístupnit ji uživatelům. Pokud si váš Java program nebo applet stáhnou, jejich Java Runtime Environment jim zobrazí vaše digitální ID z podpisu.

Více informací najdete v dokumentaci

Tento článek slouží k rychlé orientaci v podpisu Java aplikace. Doporučuji prostudovat kompletní dokumentaci Oraclu, která pokrývá celou problematiku podepisování Java aplikací a appletů. Najdete ji na webu The Java Tutorials.

Jak podepisovat Java aplikace a applety
Štítky: