用CertificateFactory中generateCertPath方法生成CertPath总是THROW CertificateException:Sequence tag error代码如下:
String testString ="aaaaaaaaaaaa";
byte[] byteArray = testString.getBytes();
CertificateFactory outCf = CertificateFactory.getInstance("X.509"); 
CertPath outCp = outCf.generateCertPath(byteArrayInputStream);

解决方案 »

  1.   

    LZ,所谓证书是由权威CA机构颁发的,而不是你的="aaaaaaaaaaaa"获得一个字节数组当作证书,你要测试的话可以windows导出证书(如果是windows系统的话)
    给你一点相关代码看看
    ---------------
    // 初始化证书工厂
    CertificateFactory certFactory = CertificateFactory
    .getInstance("X.509"); // 获得当前目录下的证书c.der cert
    FileInputStream certFileStream = new FileInputStream(".\\certs\\d3.cer");
    X509Certificate cert = (X509Certificate) certFactory
    .generateCertificate(certFileStream); certFileStream.close();
      

  2.   

    是啊,证书内容不是可以随便指定的,它是按ASN.1编码格式的,sequence是ASN.1里的一种数据结构,每种结构都有一个标示,称之为tag。 你这样随便给出字符串,肯定不行。Certificate ::= SEQUENCE {
    tbsCertificate TBSCertificate,
    signatureAlgorithm AlgorithmIdentifier,
    signatureValue BIT STRING }
      

  3.   

    帮忙顶了
    我也遇到
    但是.net方面的