Это довольно странная возможность, но командная строка OpenSSL действительно может «переподписать» существующий сертификат.
openssl x509 -in oldcert -CA cacertfile [-CAkey capkeyfile] -out newcert -days N
CA cert и privatekey должны (оба) быть в формате PEM; Вы можете включить приватный ключ в файл сертификата и опустить -CAkey file
. Если вы опустите -days N
срок действия по умолчанию равен 30 дням. oldcert и newcert по умолчанию являются PEM, но могут быть изменены с помощью -inform
и -outform
соответственно.
Если вы делаете это только один раз, проще всего использовать -set_serial S
для нового сериала. Если вы сделаете или могли бы сделать это несколько раз для одного ЦС, чтобы каждый из них получал уникальный серийный номер, позвольте OpenSSL использовать его файл серийного счетчика, указав, по крайней мере, -CAcreateserial
в первом.
По умолчанию расширения остаются без изменений. Если oldcert имеет расширение AuthorityKeyIdentifier, указывающее на старый ЦС, а новый ЦС отличается, это сделает полученный сертификат непригодным для использования, поскольку его невозможно проверить. Другие связанные с CA расширения, такие как CRLDP и AIA, также могут вызывать проблемы. Используйте -clrext
для удаления старых расширений; если вам нужны (любые) расширения в новом CERT, вы должны настроить их (все) в файл , заданный с -extfile
и необязательно -extensions
(раздел).
См. Https://www.openssl.org/docs/apps/x509.html#SIGNING-OPTIONS (и перейдите по ссылке на x509v3_config, если вам нужны расширения). Предупреждение под -CA
"... без опции -req ввод ... должен быть самоподписан" завышено; если нет, openssl выдает сообщение об ошибке "невозможно проверить", но создает новый сертификат по желанию. Кроме того, в выпуске 1.0.1 до f была ошибка, из-за которой в этом случае выводился неправильный результат; убедитесь, что вы не используете одну из этих версий.
И, как уже отмечалось, если у вас нет подходящего закрытого ключа где-то (возможно, в другой системе / приложении / где-либо еще), полученный сертификат имеет очень ограниченную полезность.