java.security.InvalidKeyException: Алгоритъмът не се поддържа с Java WS Core 4.0.8

Опитвам се да стартирам Java WS Core контейнер версия 4.0.8 от Globus Tooklit. Преди да мога да стартирам контейнера, трябва да създам мрежово прокси с помощта на grid-proxy-init. Използвам сертификата си от CERN за тази цел. Също така изтеглих сертификатите на CERN Root CA и CERN Trusted Certificate Authority и конфигурирах globus да им се доверява. Въпреки това, когато направя grid-proxy-init, получавам следната грешка:

Files used: 
  proxy     : /tmp/x509up_u501
  user key  : ~/.globus/userkey.pem
  user cert : ~/.globus/usercert.pem
Your identity: (correct identity)
Error: Wrong pass phrase
java.security.InvalidKeyException: Algorithm not supported.
    at org.globus.gsi.OpenSSLKey.readPEM(OpenSSLKey.java:169)
    at org.globus.gsi.OpenSSLKey.<init>(OpenSSLKey.java:105)
    at org.globus.gsi.bc.BouncyCastleOpenSSLKey.<init>(BouncyCastleOpenSSLKey.java:45)
    at org.globus.tools.DefaultProxyInit.loadKey(ProxyInit.java:608)
    at org.globus.tools.ProxyInit.createProxy(ProxyInit.java:204)
    at org.globus.tools.ProxyInit.main(ProxyInit.java:518)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.globus.bootstrap.BootstrapBase.launch(BootstrapBase.java:95)
    at org.globus.bootstrap.Bootstrap.main(Bootstrap.java:37)

Моля, имайте предвид, че моите CA сертификати са на нестандартно място (~/.globus/certificates). Опитах да използвам X509_CERT_DIR=~/.globus/certificates, но без резултат. Освен това grid-proxy-init всъщност не ме пита за парола. Просто дава тази грешка. Нямам представа как да коригирам това допълнително. Ще се радвам на всякакви идеи как да продължа. Освен това бих искал да проверя дали globus наистина разпознава моите CA сертификати без никакви проблеми. Благодаря!


person K G    schedule 26.07.2013    source източник
comment
Няма отговори? Донякъде съм отчаян, момчета.   -  person K G    schedule 29.07.2013


Отговори (1)


Добре, така че разбрах какъв е проблемът. Преобразувах сертификата в PEM от PKCS, използвайки:

openssl pkcs12 -in cert.p12 -out usercert.pem -nokeys
openssl pkcs12 -in cert.p12 -out userkey.pem -nocerts -nodes

Очевидно това само извлича частния ключ от файла със сертификата, но всъщност не го преобразува във формат PEM. За това трябваше да използвам следната команда:

openssl pkcs12 -in cert.p12 -nocerts -nodes|openssl rsa -out userkey.pem -des3

Това извежда частния ключ в необходимия формат и grid-proxy-init вече работи добре.

person K G    schedule 02.08.2013