java中“keytool -genkey...”生成密钥对文件,然后“keytool -certreq...”生成请求,这些都是手工完成的,java库中是否提供了程序实现这个功能的接口。

解决方案 »

  1.   

    可以啊,keytool 工具就是用 java 编写的。不用于证书请求的生成格式 PKCS#10 格式被 JDK 封装在 JRE 类库中了,我们不应该在程序中使用的。如果想用程序生成 keytool 的证书请求可以借用 BouncyCastle 的加密套件。
      

  2.   

    keytool -certreq...是导出向 CA 申请的证书,你这个还要批量?一般只要一个证书就可以了。而且向 Versign 等 CA 巨头申请证书的话是非常昂贵的,你还要批量申请?
      

  3.   

    try {
        // Generate a 1024-bit Digital Signature Algorithm (DSA) key pair
        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
        keyGen.initialize(1024);
        KeyPair keypair = keyGen.genKeyPair();
        PrivateKey privateKey = keypair.getPrivate();
        PublicKey publicKey = keypair.getPublic();    // Generate a 576-bit DH key pair
        keyGen = KeyPairGenerator.getInstance("DH");
        keyGen.initialize(576);
        keypair = keyGen.genKeyPair();
        privateKey = keypair.getPrivate();
        publicKey = keypair.getPublic();    // Generate a 1024-bit RSA key pair
        keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(1024);
        keypair = keyGen.genKeyPair();
        privateKey = keypair.getPrivate();
        publicKey = keypair.getPublic();
    } catch (java.security.NoSuchAlgorithmException e) {
    }