1

我正在尝试从 Globus Tooklit 启动 Java WS Core 容器版本 4.0.8。在启动容器之前,我需要使用grid-proxy-init. 为此,我正在使用我的 CERN 证书。我还下载了 CERN 根 CA 和 CERN 受信任的证书颁发机构证书,并将 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 证书。谢谢!

4

1 回答 1

0

好的,所以我弄清楚了问题所在。我正在使用以下方法将证书从 PKCS 转换为 PEM:

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现在可以正常工作。

于 2013-08-02T13:08:18.207 回答