2015-06-04 125 views
0

我在LDAP中有一個用戶證書字段,它接受X509證書。 我已經在bouncy castle wiki上提供了用戶指南,創建了一個X509證書。將數據添加到X509證書

已成功創建證書並將其添加到LDAP。我的要求是,我有一個ecrypted數據爲每個用戶,我需要保存到用戶證書字段。

如何將這些數據添加到用戶證書?

我使用下面的代碼創建了版本1用戶證書。

Security.addProvider(new BouncyCastleProvider()); 

      KeyPairGenerator kpGen = KeyPairGenerator.getInstance("RSA", "BC"); 
      kpGen.initialize(1024, new SecureRandom()); 
      KeyPair pair = kpGen.generateKeyPair(); 

      X509v1CertificateBuilder certBldr = new JcaX509v1CertificateBuilder(
        new X500Name("CN=User Certificate:"), 
        BigInteger.valueOf(1), 
        new Date(System.currentTimeMillis()), 
        new Date(System.currentTimeMillis() + (5*365*24*60*60*1000)), 
        new X500Name("CN=User Certificate:"), 
        pair.getPublic()); 
        ContentSigner signer = new JcaContentSignerBuilder("SHA1withRSA") 
        .setProvider("BC").build(pair.getPrivate()); 

       cert= new JcaX509CertificateConverter().setProvider("BC") 
       .getCertificate(certBldr.build(signer)); 

回答

1

的cerficate成功創建並添加到LDAP。我的要求是,我有一個ecrypted數據爲每個用戶,我需要保存到用戶證書字段。

有什麼問題。 userCertificate屬性用於X.509證書。把其他東西放在那裏會違反LDAP模式。

如何將此數據添加到用戶證書?

你不行。

+0

好的。謝謝回覆。我可以在創建用戶證書時使用這些數據嗎?我需要重新獲取數據並在稍後使用它。像生成證書時添加到一些自定義文件? apache studio中的證書瀏覽器顯示自定義字段,如X500名稱(ou,o,cn等) –

+0

您可以在創建私鑰時提供'keytool'請求的任何數據。或者任何'openssl.exe'請求。一旦證書被創建,你就不能改變它。 – EJP