24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Подписване на Java аплети с инструмента keytool<br />

За да повишим правата, с които се изпълнява даден аплет, е необходимо да<br />

го подпишем. Нека разгледаме как става това.<br />

Да предположим, че сме написали кода на даден аплет и след като сме го<br />

компилирали, сме получили файла Applet.jar. Необходимо е да подпишем<br />

този JAR файл.<br />

Можем да използваме за целта програмката jarsigner, която се разпространява<br />

стандартно с JDK 1.4. По подразбиране тя се инсталира в директория<br />

%JAVA_HOME%\bin. Ето един пример за нейното използване:<br />

jarsigner –storetype pkcs12 –keystore keystore.pfx -storepass store_password<br />

–keypass private_key_password Applet.jar signFilesAlias<br />

Посочената команда подписва JAR файла Applet.jar с личния ключ, записан<br />

под име signFilesAlias в хранилището за сертификати и ключове<br />

keystore.pfx като използва пароли за достъп до хранилището и сертификата<br />

съответно store_password и private_key_password.<br />

Програмката jarsigner поддържа два типа хранилища за сертификати и<br />

ключове – Java Key Store (.JKS файлове) и PKCS#12 (.PFX файлове). За да я<br />

използваме, трябва или да имаме сертификат, издаден от някой сертификационен<br />

орган (PFX файл, съдържащ сертификата и съответния му личен<br />

ключ) или трябва да си генерираме саморъчно-подписан сертификат. От JDK<br />

1.5 jarsigner поддържа подписване и със смарт карта.<br />

Генериране на саморъчно подписани сертификати с jarsigner<br />

За да си генерираме саморъчно-подписан (self-signed) сертификат можем да<br />

използваме програмката keytool, която идва стандартно с JDK 1.4.<br />

Ето примерна команда за генериране на саморъчно-подписан сертификат:<br />

keytool -genkey -alias signFiles -keystore SignApplet.jks -keypass !secret -dname<br />

"CN=My Company" -storepass !secret<br />

Посочената команда генерира X.509 сертификат и съответен на него личен<br />

ключ и ги записва под име signFiles в хранилището за ключове и<br />

сертификати SignApplet.jks. В сертификата се записва, че собственикът му<br />

е “My Company”, а за парола за достъп до хранилището и до личния ключ се<br />

използва “!secret”. По подразбиране програмката keytool използва<br />

формата за хранилища JKS (Java Key Store).<br />

Подписване на аплет със саморъчно-подписан сертификат<br />

Можем да използваме генерирания с предходната команда саморъчноподписан<br />

сертификат за да подпишем нашия аплет по следния начин:<br />

jarsigner -keystore SignApplet.jks -storepass !secret -keypass !secret Applet.jar<br />

signFiles<br />

65

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!