Рецепт Plaxo OpenID (с сайта OpenID ) был одним из лучших, как я видел.
Возможность подписывать сертификаты не является частью стандартной библиотеки или расширения Java.
Большая часть кода, который необходим, чтобы сделать это самостоятельно, является частью ядра. Существуют классы для кодирования и декодирования имен X.500, расширений сертификатов X.509, открытых ключей для различных алгоритмов и, конечно же, для фактического выполнения цифровой подписи.
Реализовать это самостоятельно нетривиально, но это определенно выполнимо - Наверное, я потратил 4 или 5 полных дней, когда впервые сделал рабочий прототип для подписи сертификата. Для меня это было фантастическим учебным упражнением, но трудно оправдать такие расходы, когда есть полезные библиотеки, доступные бесплатно.
Все основные компоненты для создания самозаверяющего сертификата (подпись, кодировка X509 и т. Д.) Доступны в JRE. В отличие от BC, Sun JCE не предоставляет никаких публичных вызовов для подписания сертификата. Однако, все функции доступны в Keytool. Для этого вы можете просто скопировать код из keytool. Вам нужно скопировать метод doSelfCert ()
.
Зависит от того, что именно вы хотите сделать (и, возможно, ваше определение "Разумно"). Как указал Кодер ZZ, вы можете создать самоподписанный сертификат непосредственно путем копирования keytool. Но я не верю, что вы можете создать объект запроса сертификата PKCS10 со стандартным JCE, что вам, вероятно, придется сделать, если вы хотите создать стандартные CA-signed EEC.