24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

след кодиране с Base64 тази верига има дължина от 200-300 до 8000-10000<br />

текстови символа.<br />

За осъществяването на достъп до защитеното хранилище за ключове и<br />

сертификати (PFX файла, който потребителят избира) се използва класът<br />

java.security.KeyStore. Аплетът очаква хранилището да бъде във формат<br />

PKCS#12 и да съдържа само един запис (alias), в който са записани личният<br />

ключ на потребителя и сертификационната верига на неговия сертификат. В<br />

частност тази сертификационна верига може да се състои и само от един<br />

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

съвпада са паролата за достъп до личния ключ в него.<br />

Компилиране и подписване на аплета<br />

За да работи правилно аплетът, е необходимо той да бъде подписан. За<br />

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

орган (PFX файл) или саморъчно-подписан сертификат. Можем<br />

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

сертификат:<br />

generate-certificate.bat<br />

del DigitalSignerApplet.jks<br />

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

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

pause<br />

Резултатът е файлът DigitalSignerApplet.jks, който представлява хранилище<br />

за ключове и сертификати, съдържащо генерирания сертификат и<br />

съответния му личен ключ, записани под име “signFiles”, достъпни с парола<br />

“!secret”. Форматът на изходния файл не е PKCS#12, а JKS (Java KeyStore),<br />

който се използва по подразбиране от програмката keytool.<br />

За компилирането на сорс-кода на аплета, получаването на JAR архив и<br />

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

build-script.bat<br />

del *.class<br />

javac -classpath .;"%JAVA_HOME%\jre\lib\plugin.jar" *.java<br />

del *.jar<br />

jar -cvf DigitalSignerApplet.jar *.class<br />

jarsigner -keystore DigitalSignerApplet.jks -storepass !secret -keypass !secret<br />

DigitalSignerApplet.jar signFiles<br />

pause<br />

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

.class файлове, компилира всички .java файлове, които съставят аплета,<br />

пакетира получените .class файлове в JAR архив и подписва този архив с<br />

90

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

Saved successfully!

Ooh no, something went wrong!