获取现有证书并操纵内容

Take an existing certificate and manipulate the contents

我如何使用现有的 X509Certificate,进行精确复制并更改内容以进行测试?我想更改的是使签名无效、更改部分主题字段、更改证书策略扩展字段、更改基本约束扩展字段、将其设置为过期等。

是否存在允许我执行此操作的现有功能 (Java)?

我不确定您是否真的可以这样做...像这样的证书的部分好处是它们不能被篡改和修改。

您能不能创建自己的测试版?尝试修改现有的可能会更容易。

这一点我可能是错的,但无论如何我都不知道要这样做。

证书由证书颁发机构(或 self-signed)进行数字签名。对内容的任何更改都会使签名无效,因此如果您复制现有证书以更改某些属性,您将需要一个新签名

如果您拥有私钥,您可以使用相同的 public 密钥向 CA 申请新证书,但字段不同。您也可以使用自己的 CA 对其进行签名,或者如果它是自签名的,则使用私钥对其进行签名。

出于测试目的,您可以使用 bouncycastle 构建自己的证书。例如,您可以使用 Self signed X509 Certificate with Bouncy Castle in Java

的代码