为Bouncy Castle加密创建证书

时间:2010-04-23 10:01:59

标签: java encryption certificate bouncycastle 3des

我正在尝试创建一个自签名证书,用于使用bouncycaste加密电子邮件。

生成证书的最佳方式是什么?

我尝试过使用openssl,但我遇到了证书问题。

以下是我用来加密的代码,我正在使用3des。

SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator();
gen.addKeyTransRecipient(x509Cert); // adds an X509Certificate

MimeBodyPart encData = 
    gen.generate(mimeBodyPart, SMIMEEnvelopedGenerator.DES_EDE3_CBC, "BC");

编辑: 很抱歉是因为vauge但我收到的错误信息似乎不是很有用。

信息如下:

org.openas2.WrappedException: org.bouncycastle.mail.smime.SMIMEException:
 key invalid in message.

当我调用SMIMEEnvelopedGenerator.generate方法时抛出此内容。

我目前正在Eclipse中附加源代码,看看是否可以通过单步执行代码来获得更有用的错误消息。

2 个答案:

答案 0 :(得分:2)

我会使用keytool或openssl生成自签名证书。如果您遇到问题然后发布,不要只是说您有问题。如果要从java代码生成证书,请使用org.bouncycastle.x509.X509V3CertificateGenerator

答案 1 :(得分:1)

你应该对openssl没问题;这是我用来生成自签名证书的命令:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

这将创建一个名为mycert.pem的文件,其中包含两个文件 私钥和自签名证书。请注意本例中的 密钥是未加密的,可用于测试目的。 密钥和证书都是PEM编码的,包括标准头 和页脚行。