最近我在做 .net 调用 java XFire ws-security !
在做到把 cer或crt证书到转换成pfx格式证书的时候,遇到了一点问题!
我在网上下载了一个jks2pfx这样的一个工具,在windows server 2003系统中生成 成功过!但在XP中一直没成功过!
都郁闷一天了!
希望大哥帮帮忙 。  先谢谢了

解决方案 »

  1.   

    一楼的朋友不好意思  ,我的问题都没描述清楚。。见谅 /**
     * Java KeyStore文件转换为微软的.pfx文件和OpenSSL的PEM格式文件(.key + .crt)
     * 
    运行方式:
    JKS2PFX <KeyStore文件> <KeyStore密码> <Alias别名> <导出文件名> [Java Runtime的目录]

    Java Runtime的目录,指包含Java.exe和keytool.exe的目录,如:
    c:\progra~1\Java\jre1.5.0_06\bin

    例如:
    JKS2PFX server.jks 123456 tomcat exportfile c:\progra~1\Java\jre1.5.0_06\bin

    www.myssl.cn
    2006.5.29
     */我的运行方式及结果如下 /**
    C:\dev\jks>JKS2PFX server.jks serverjks serverAlias netClient C:\Program Files\Java\jre6\bin
    java.lang.NullPointerException
            at ExportPrvKey.main(ExportPrvKey.java:13)
    Generating new PFX Key/Certificate pair, please enter a password
    Loading 'screen' into random state - done
    unable to load private key
    Created new PEM key  : netClient.key  (without password)
    Created new PEM cert : netClient.crt
    Created new PFX file : netClient.pfx  (with password)
     */我确定的我的密码那些没写错!
      

  2.   

    ExportPrvKey.java的源码如下import java.io.FileInputStream;
    import java.security.KeyStore;
    import java.security.Key;
     
    public class ExportPrvKey {
    static public void main(String[] args) {
    if(args.length < 3)
    System.out.println("usage: java ExportPrvKey keystore password alias");
    try {
    KeyStore ks = KeyStore.getInstance("jks");
    ks.load(new FileInputStream(args[0]), args[1].toCharArray());
    Key key = ks.getKey(args[2], args[1].toCharArray());
    System.out.write(key.getEncoded());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }
      

  3.   


    好像是红色的一行抛出了NullPointerException, 可能你指定的key(alias)不存在。
      

  4.   

    查了一个getKey的说明,如果指定的alias对应的不是Key,比如是证书,也会返回null的。