2017-02-10 3 views
0

Как я могу взять существующий сертификат X509, сделать точную копию и изменить содержимое для целей тестирования? Я хотел бы изменить тип подписи, изменить части поля темы, изменить поле расширения Политики Политики, изменить поле расширения основных ограничений, установить его как истек и т.д.Возьмите существующий сертификат и обработайте его содержимое

Есть ли существующие функции (Java), который позволяет мне это делать?

+2

код [X509V3CertificateBuilder] (https://www.bouncycastle.org/docs/pkixdocs1.5on/org/bouncycastle/cert/X509v3CertificateBuilder.html) ближе всего к чему вас хотеть. Вы можете скопировать поля, которые вы хотите, из оригинального сертификата. Подпись больше не будет действительной после изменения чего-либо, но вы можете подписать модифицированный сертификат своим личным ключом, если вы просто проводите эксперименты. –

ответ

0

Сертификат цифровой подписью выдающего центра сертификации (или самоподписанного). Любое изменение содержимого аннулирует подпись, поэтому, если вы сделаете копию существующего сертификата для изменения некоторых атрибутов, вам понадобится новая подпись.

Если у вас есть секретный ключ, вы можете запросить новый сертификат в CA, используя тот же открытый ключ, но с разными полями. Вы также можете подписывать его со своим собственным ЦС, или если он сам подписан, подпишите его с помощью закрытого ключа.

В целях тестирования вы можете создать свои собственные сертификаты с помощью bouncycastle. Например, вы можете использовать код Self signed X509 Certificate with Bouncy Castle in Java

2

Я не уверен, что вы действительно можете это сделать ... часть преимуществ таких сертификатов заключается в том, что они не могут быть изменены и изменены.

Можете ли вы не просто создать свой собственный тестовый вариант вместо этого? Вероятно, было бы легче попытаться изменить существующий.

Возможно, я ошибаюсь в этом вопросе, но я не знаю, как это сделать.

Смежные вопросы