为 Bouncy Castle 加密创建证书
我正在尝试创建一个自签名证书,用于使用 bouncycaste 加密电子邮件。
生成证书的最佳方式是什么?
我尝试过使用 openssl 但我遇到了证书问题。
这是我用来加密的代码,我使用的是 3des。
SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator();
gen.addKeyTransRecipient(x509Cert); // adds an X509Certificate
MimeBodyPart encData =
gen.generate(mimeBodyPart, SMIMEEnvelopedGenerator.DES_EDE3_CBC, "BC");
编辑: 抱歉,我的说法很浮夸,但我收到的错误消息似乎不太有用。
消息如下:
org.openas2.WrappedException: org.bouncycastle.mail.smime.SMIMEException:
key invalid in message.
当我调用 SMIMEEnvelopedGenerator.generate 方法时抛出此错误。
我目前正在 Eclipse 中附加源代码,看看是否可以通过逐步执行代码来获得更有用的错误消息。
I am trying to create a self-signed certificate to use for encrypting an email using bouncycaste.
What would be the best way to generate a certificate?
I have tried using openssl but I have had problems with certificate.
Here is the code I am using to encrypt, I am using 3des.
SMIMEEnvelopedGenerator gen = new SMIMEEnvelopedGenerator();
gen.addKeyTransRecipient(x509Cert); // adds an X509Certificate
MimeBodyPart encData =
gen.generate(mimeBodyPart, SMIMEEnvelopedGenerator.DES_EDE3_CBC, "BC");
EDIT:
Sorry for being vauge but the error message I am getting doesn't seem to be very useful.
The message is as follows:
org.openas2.WrappedException: org.bouncycastle.mail.smime.SMIMEException:
key invalid in message.
This is thrown when I call the SMIMEEnvelopedGenerator.generate method.
I am currently attaching the source code in Eclipse to see if I can get a more useful error message by stepping through the code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我会使用 keytool 或 openssl 生成自签名证书。如果您遇到问题,请发布它们,不要只是说您遇到问题。如果您想从 Java 代码生成证书,请使用 org.bouncycastle.x509.X509V3CertificateGenerator 类
I would use keytool or openssl to generate a self-signed certificate. If you are having problems then post them, don't just say you are having problems. If you want to generate the certificate from your java code use the org.bouncycastle.x509.X509V3CertificateGenerator class
你应该对 openssl 没问题;这是我用来生成自签名证书的命令:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
这将创建一个名为 mycert.pem 的文件,其中包含两者都
私钥和自签名证书。请注意,在此示例中
密钥未加密,这对于测试目的来说是可以的。
密钥和证书均经过 PEM 编码并包含标准标头
和页脚线。
You should be okay with openssl; this is the command I would use to generate a self-signed cert:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
This will create a file called mycert.pem which contains both the
private key and the self signed cert. Note in this example the
key is unencrypted which is okay for testing purposes.
Both key and cert are PEM encoded and include the standard header
and footer lines.