Spec-Zone .ru
спецификации, руководства, описания, API
|
Java Богатое Руководство по Интернет-приложениям > Безопасность> Подписание Апплетов Используя Сертификаты RSA
Следующие темы затрагиваются:
RSA-подписанные апплеты поддерживаются, чтобы сделать развертывание подписанных апплетов легче. Однако, подписание апплетов через RSA является все еще трудным для большинства разработчиков апплета новичка и препятствует тому, чтобы они в полной мере пользовались этой функцией Плагина Java. Этот документ обеспечивает постепенные инструкции для того, чтобы они подписали апплеты, используя сертификаты RSA, разрешая разработчикам апплета новичка подписать их апплеты, не имея необходимость пробираться через многие сложные включенные вопросы безопасности.
Подписание апплетов требует следующего:
Плагин Java поддерживает формат следующих инструментов для того, чтобы подписать апплеты, используя RSA:
jarsigner
: Подписание инструмента, поставленного как часть SDK Javasigntool
: Подписание инструмента обеспечило Netscape для подписания апплетов в Навигаторе/Коммуникаторе. Для получения дополнительной информации на инструменте знака и загрузке этого, см. Сертификаты RSA могут быть куплены от Центра сертификации (CA), который поддерживает RSA, такой как
Jarsigner, как известно, работает с VeriSign и сертификатами Thawte и может работать с Сертификатом Authorties. Чтобы использовать Jarsigner, чтобы подписать апплеты, используя сертификаты RSA, получите сертификаты для подписывания кода для Java от
keytool
генерировать пару ключей RSA (использующий"-genkey -keyalg rsa
"опции). Удостоверьтесь, что Ваше отличительное имя содержит все компоненты, переданные под мандат VeriSign/Thawte. Например: C:\Program Files\Java\jdk1.8.0\bin\keytool -genkey -keyalg rsa -alias MyCert Enter keystore password: ********* What is your first and last name? [Unknown]: XXXXXXX YYY What is the name of your organizational unit? [Unknown]: Example Software What is the name of your organization? [Unknown]: New Technology Company What is the name of your City or Locality? [Unknown]: Cupertino What is the name of your State or Province? [Unknown]: CA What is the two-letter country code for this unit? [Unknown]: US Is <CN=XXXXXXX YYY, OU=Example Software, O=New Technology Company, L=Cupertino, ST=CA, C=US> correct? [no]: yes Enter key password for <MyCert> (RETURN if same as keystore password): *********
keytool -certreq
"чтобы генерировать сертификацию, подписывая запрос. Скопируйте результат и вставьте его в VeriSign/Thawte webform. Например, C:\Program Files\Java\jdk1.8.0\bin\keytool -certreq -alias MyCert Enter keystore password: ********* -----BEGIN NEW CERTIFICATE REQUEST----- MIIBtjCCAR8CAQAwdjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwE AYDVQQHEwlDdXBlcnRpbm8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbX MxFjAUBgNVBAsTDUphdmEgU29mdHdhcmUxEzARBgNVBAMTClN0YW5sZXk gSG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALTgU8PovA4y59eb oPjY65BwCSc/zPqtOZKJlaW4WP+UhmebE+T2Mho7P5zXjGf7elo3tV5uI 3vzgGfnhgpf73EoMow8EJhly4w/YsXKqeJEqqvNogzAD+qUv7Ld6dLOv0 CO5qvpmBAO6mfaI1XAgx/4xU/6009jVQe0TgIoocB5AgMBAAGgADANBgk qhkiG9w0BAQQFAAOBgQAWmLrkifKiUYtd4ykhBtPWSwW/IKkgyfIuNMML dF1DH8neSnXf3ZLI32f2yXvs7u3/xn6chnTXh4HYCJoGYOAbB3WNbAoQR i6u6TLLOvgv9pMNUo6v1qB0xly1faizjimVYBwLhOenkA3Bw7S8UIVfdv 84cO9dFUGcr/Pfrl3GtQ== -----END NEW CERTIFICATE REQUEST-----
keytool -import
"чтобы импортировать цепочку в Ваш keystore. Например: C:\Program Files\Java\jdk1.6.0\bin\keytool -import -alias MyCert -file VSSStanleyNew.cer
jarsigner
подписать Ваш файл JAR.Отметьте:
Следует использовать то же самое имя псевдонима для всех вышеупомянутых шагов или никакое имя псевдонима, когда значения по умолчанию имени псевдонима к "mykey".
Чтобы использовать Jarsigner, чтобы подписать апплеты с сертификатами RSA, апплеты должны быть связаны как файлы JAR. Инструмент Фляги (команда jar ...
), который прибывает wiht Java SDK SE, может использоваться с этой целью. Например:
C:\Program Files\Java\jdk1.8.0\bin\jar cvf C:\TestApplet.jar . added manifest adding: TestApplet.class (in = 94208) (out= 20103)(deflated 78%) adding: TestHelper.class (in = 16384) (out= 779)(deflated 95%)Этот пример создает файл JAR C:\TestApplet.jar, и это содержит все файлы под текущим каталогом и его подкаталогами.
После того, как файл JAR создается, следует проверить его контент, используя jar
оснастите снова, например,
C:\Program Files\Java\jdk1.8.0\bin\jar tvf TestApplet.jar 0 Mon Mar 06 18:02:54 PST 2000 META-INF/ 68 Mon Mar 06 18:02:54 PST 2000 META-INF/MANIFEST.MF 94208 Wed Mar 10 11:48:52 PST 2000 TestApplet.class 16384 Wed Mar 10 11:48:52 PST 2000 TestHelper.classЭто гарантирует, что файлы class хранятся с надлежащим путем в пределах файла JAR.
Чтобы подписать апплет с сертификатом RSA, используя Инструмент Подписания Netscape, апплет должен быть помещен в каталог, например, C:\signdir
. Инструмент Подписания Netscape свяжет это как файл JAR после процесса подписания.
Как только у Вас есть сертификаты RSA, инструмент подписания и файлы JAR апплета, Вы готовы подписать апплеты.
jarsigner
Подписать использование апплетов jarsigner
, следуйте за этими шагами:
jarsigner
подписать файл JAR, используя учетные данные RSA в Ваших keystore, которые были сгенерированы в предыдущих шагах. Удостоверьтесь, что то же самое имя псевдонима определяется. Например, C:\Program Files\Java\jdk1.8.0\bin\jarsigner C:\TestApplet.jar MyCert Enter Passphrase for keystore: ********
jarsigner -verify -verbose -certs
"чтобы проверить файлы фляги C:\Program Files\Java\jdk1.8.0\bin\jarsigner -verify -verbose -certs d:\TestApplet.jar 245 Wed Mar 10 11:48:52 PST 2000 META-INF/manifest.mf 187 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.SF 968 Wed Mar 10 11:48:52 PST 2000 META-INF/MYCERT.RSA smk 943 Wed Mar 10 11:48:52 PST 2000 TestApplet.class smk 163 Wed Mar 10 11:48:52 PST 2000 TestHelper.class X.509, CN=XXXXXXX YYY, OU=Example Software, O=New Technology Company, L=Cupertino, ST=CA, C=US (mycert) X.509, CN=New Technology Company, OU=Java Plug-in QA, O=New Technology Company, L=Cupertino, ST=CA, C=US X.509, EmailAddress=server-certs@thawte.com, CN=Thawte Server CA, OU=Certification Services Division, O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA s = signature was verified m = entry is listed in manifest k = at least one certificate was found in keystore i = at least one certificate was found in identity scope jar verified.
Чтобы подписать апплеты, используя signtool, следуйте за этими шагами:
signtool -L
"чтобы определить прозвище сертификата, которое должно использоваться в подписании. Например, C:\signtool13WINNT40\signtool -L -d a:\cert using certificate directory: a:\cert S Certificates - ------------ AT&T Certificate Services Thawte Personal Premium CA GTE CyberTrust Secure Server CA Verisign/RSA Commercial CA AT&T Directory Services BelSign Secure Server CA BelSign Class 1 CA GTIS/PWGSC, Canada Gov. Web CA Thawte Personal Freemail CA Thawte Server CA GTIS/PWGSC, Canada Gov. Secure CA MCI Mall CA VeriSign Class 3 Primary CA VeriSign Class 4 Primary CA KEYWITNESS, Canada CA BelSign Class 2 CA BelSign Object Publishing CA * Sun Microsystems, Inc. VeriSign Class 3 CA - Commercial Content/Software Publisher - VeriSign, Inc. Verisign/RSA Secure Server CA VeriSign Class 1 Primary CA BBN Certificate Services CA Root 1 Thawte Personal Basic CA * Sun Microsystems, Inc.'s VeriSign, Inc. ID CertiSign BR VeriSign Class 2 Primary CA Canada Post Corporation CA Integrion CA IBM World Registry CA BelSign Class 3 CA Uptime Group Plc. Class 1 CA Uptime Group Plc. Class 2 CA Thawte Premium Server CA Uptime Group Plc. Class 3 CA GTE CyberTrust Root CA Uptime Group Plc. Class 4 CA - ------------ Certificates that can be used to sign objects have *'s to their left.
mkdir signdir
signtool -Z
"чтобы подписать апплет. Например, C:\signtool13>signtool -k "Sun Microsystems, Inc.'s VeriSign, Inc. ID" -d a:\cert -Z c:\TestApplet.jar c:\signdir using certificate directory: a:\cert Generating c:\signdir/META-INF/manifest.mf file.. --> TestApplet.class adding c:\signdir/TestApplet.class to c:\TestApplet.jar... (deflated 57%) --> TestHelper.class adding c:\signdir/TestHelper.class to c:\TestApplet.jar... (deflated 43%) Generating zigbert.sf file.. adding c:\signdir/META-INF/manifest.mf to c:\TestApplet.jar... (deflated 44%) adding c:\signdir/META-INF/zigbert.sf to c:\TestApplet.jar... (deflated 46%) adding c:\signdir/META-INF/zigbert.rsa to c:\TestApplet.jar... (deflated 40%) tree "c:\signdir" signed successfully
signtool -w
"чтобы проверить архив. Например, C:\signtool13>signtool -w c:\TestApplet.jar -d a:\cert using certificate directory: a:\cert Signer information: nickname: Sun Microsystems, Inc.'s VeriSign, Inc. ID subject name: C=US, ST=CA, L=Palo Alto, OU=Example Software, CN=Sun Microsystems, OU=Digital ID Class 3 - Netscape Object Signing, OU="www.verisign.com/repository/RPA Incorp. by Ref.,LIAB.LTD(c)99", OU=VeriSign Trust Network, O="VeriSign, Inc." issuer name: CN=VeriSign Class 3 CA - Commercial Content/Software Publisher, OU="www.verisign.com/repository/RPA Incorp. by Ref.,LIAB.LTD(c)98", OU=VeriSign Trust Network, O="VeriSign, Inc."
Ваш апплет был подписан должным образом. Вы теперь готовы развернуть свой RSA подписанный апплет. См., Как Развернуть RSA Подписанные Апплеты для информации о развертывании.
Существующий RSA подписанные апплеты, разработанные для Netscape, может использовать Специфичные для netscape API безопасности. Эти Специфичные для netscape API не поддерживаются в Плагине Java. Вместо этого Плагин поддерживает стандартные API безопасности Java и в Навигаторе Netscape и в Internet Explorer.
Переместить Подписанные netscape апплеты, используя API безопасности Netscape, чтобы работать в Плагине Java:
netscape.security.*
связанные операторы от апплета Java.Это гарантирует, что RSA подписанный апплет будет работать и в Навигаторе Netscape и в Internet Explorer с Плагином Java.
Если файл JAR не подписывается должным образом, если сертификат RSA истек, или если сертификат RSA является самосгенерированным, самоподписанным сертификатом, Плагин Java может перестать работать тихо и не раскрыться диалоговое окно безопасности. Апплет будет обработан как без знака.