请高人指教:怎么用java代码生成一个crl证书吊销列表?

a沐 发布于 2011/10/10 12:12
阅读 955
收藏 0

请高人指教:

最近在一个ca认证中心的系统,不懂得怎么用java代码生成crl吊销列表,即,用java代码生成一个crl文件,并将该文件保存在本地硬盘上。

请高人给java代码示例。

请高人指教!!先谢过各位了!

加载中
0
小帅帅丶
小帅帅丶

/**
     * 组装X509V2CRL证书吊销对象
     * @param bdate 生效日期
     * @param edate 下一次更新日期
     * @param info 主题信息
     * @param priKey CA证书私钥
     * @return X509CRL
     * @throws Exception
     */
    private static X509CRL generateV2CRLCertificate(Date bdate, Date edate,
            X500Principal info, PrivateKey priKey) throws Exception{
        Security.addProvider(new BouncyCastleProvider());
        X509V2CRLGenerator certGen = new X509V2CRLGenerator();
        certGen.setIssuerDN(info);
        certGen.setThisUpdate(bdate);
        certGen.setNextUpdate(edate);
        certGen.setSignatureAlgorithm("SHA1withRSA");
        return certGen.generate(priKey, "BC");
    }
    /**
     * 生成X509V2CRL证书吊销文件
     * @param address 保存的目录
     * @param bdate 生效日期
     * @param edate 下一次更新日期
     * @param info 主题信息
     * @param priKey CA证书私钥
     * @throws Exception
     */
    public  static void createCRLCert(String address, Date bdate, Date edate,
            X500Principal info, PrivateKey priKey) throws Exception {
        String certaddress = address + "/" + new Date().getTime() / 1000
                + ".crl";
        X509CRL cert = generateV2CRLCertificate(bdate,edate,info,priKey);
        FileOutputStream outputStream = new FileOutputStream(certaddress);
        Writer writer = new OutputStreamWriter(outputStream,
                Charset.forName("UTF-8"));
        writer.write("-----BEGIN CERTIFICATE-----\n");
        writer.write(new sun.misc.BASE64Encoder().encode(cert.getEncoded()));
        writer.write("\n-----END CERTIFICATE-----\n");
        writer.flush();
        System.out.println("证书保存目录:" + certaddress);
    }

小帅帅丶
小帅帅丶
666
返回顶部
顶部