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)

Обратите внимание, что мои сертификаты ЦС находятся в нестандартном месте (~/.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