是否可以在不使用 sun.* 或 com.sun.* 包且不使用外部库的情况下使用 Java 代码生成证书签名请求?如果我需要使用像 BouncyCastle 这样的库,我会研究它,但到目前为止,我的所有搜索都只显示了使用 sun 包或 BouncyCastle 的示例,如果可能的话,我更愿意坚持使用原始 API。
而且,如果我正在尝试的事情是不可能的,那么最好的方法是什么?
是否可以在不使用 sun.* 或 com.sun.* 包且不使用外部库的情况下使用 Java 代码生成证书签名请求?如果我需要使用像 BouncyCastle 这样的库,我会研究它,但到目前为止,我的所有搜索都只显示了使用 sun 包或 BouncyCastle 的示例,如果可能的话,我更愿意坚持使用原始 API。
而且,如果我正在尝试的事情是不可能的,那么最好的方法是什么?
我不认为这是可能的。接受这一点,直到有人有更好的答案或它成为可能。
FWIW,我最终使用外壳调用keytool
来执行此操作。
很抱歉回复得太晚了,但我想我还是会尝试的。Bouncy Castle 或 Java 库让您的工作轻松完成这项任务。但是,如果您不能将这些库用于您的项目,那么我对您的回答仍然是“是”,但您必须非常熟悉 ASN1 编码。我认为你没有理由不能从现有的 CSR 中学习。当我不得不做类似的事情时,这个站点 ( http://lapo.it/asn1js/ ) 极大地帮助了我理解 ASN1。一旦您了解了 CSR 的格式,在我之前提到的 ASN1 工具的帮助下,如何重新利用示例 CSR 以供您使用就变得很清楚了。在高层次上,你会
java.security.Signature 对象应该能够帮助您完成签名部分。