Автор неизвестен по подписанной банке

Подписывая банку на Java, я следовал этим трем шагам, чтобы подписать

  1. keytool -genkey -keystore myKeyStore -alias me
  2. keytool -selfcert -keystore myKeyStore -alias me
  3. jarsigner -keystore myKeyStore jarfile.jar me

Мои вопросы следующие:

  1. После этого я запустил свой апплет, почему он показывает, что автор неизвестен?
  2. Я могу дать -validity нет дней для моей банки, какие максимальные дни я могу дать?

3 ответа

Решение
  1. Сертификат, который вы создали, является самоподписанным. Только сертификаты, подписанные одним из центров доверия, помеченных как доверенные в настройках Java, отображаются как "проверенные авторы".

  2. Срок действия не имеет никакого отношения к тому, как долго будет работать ваш JAR-файл. Период действия отмечает только время, когда вы можете использовать сертификат (или лучше закрытый ключ, который принадлежит сертификату) для подписания

  1. Он отображается как "Автор неизвестен", если цифровой сертификат не сертифицирован цепочкой ключей обратно в CA (центр сертификации), такой как Verisign. Проблема с "самоподписанным" сертификатом заключается в том, что, хотя вы можете создать сертификат, который утверждает, что вы являетесь тем, кто вы есть, другие люди также могут создавать сертификаты, которые утверждают, что вы являетесь тем, кто вы есть.
    Поскольку один "самозаверяющий" сертификат так же хорош, как и следующий, чтобы положительно идентифицировать вас (IE бесполезен), JRE заявляет, что "автор неизвестен".
  2. Я не уверен, хотя я вспоминаю использование 5000 дней в предыдущих сертификатах. Возможно, реальный вопрос в том, как долго стоит утверждать, что вы являетесь тем, кто вы есть, на сертификате, которому JRE никогда не будет доверять настолько, чтобы даже показать личность? Если это для коммерческого продукта, я настоятельно рекомендую сделать проверку (это может быть дорого). Это не повредит даже для широко распространяемого бесплатного продукта.

Как отмечено в keytool Срок действия,

Каждый сертификат действителен только в течение ограниченного периода времени. Этот период описывается начальной датой и временем, а также конечной датой и временем и может быть всего несколько секунд или почти целым столетием.

Как отмечают и @Andrew, и @Robert, профессиональное программное обеспечение требует профессионально подписанного сертификата. Для случайного использования самозаверяющий сертификат может использоваться людьми, которые используют другой канал доверия. Это также может помочь в отклонении ложного иска о неправильном рассмотрении.

  • A пишет программу с открытым исходным кодом, подписанную A.
  • B добавляет вредоносное ПО и, не имея возможности подписать A, подписывает B.
  • C по ошибке получает версию B и обвиняет A в преступлении.
  • А может убедиться, что подделка произошла.
Другие вопросы по тегам