Ошибка «Подпись не совпадает» при импорте сертификата в хранилище ключей - почему? - PullRequest
1 голос
/ 12 сентября 2011

В принципе, это проблема keytool, не связанная с Shibboleth, но, вероятно, было бы полезно понять, куда я пытаюсь добраться (перейдите к битам полужирным , если Shibboleth вещи для тебя ничего не значат):

Я пытаюсь настроить конфигурацию Shibboleth SSO. IdP уже был создан, и я установил SP, чтобы поговорить с ним. Пока (после большого взлома) все хорошо - SP (связанный с обратным прокси-сервером Apache) перехватывает вызовы к защищенным ресурсам и правильно перенаправляет на IdP, который представляет страницу входа. После входа в систему IdP отвечает, передавая SP токен.

Затем SP должен связаться с IdP, чтобы преобразовать токен в атрибуты, действительные для лица, вошедшего в систему, но здесь IdP жалуется, что сообщение не соответствует требованиям безопасности.

Насколько я могу судить, это связано с тем, что tomcat не принимает сертификат SP, который был самоподписан.

Вместо этого я пытаюсь создать сертификат CA и использовать его для подписи сертификата . Я добавил сертификат CA в $ JAVA_HOME / jre / lib / security / cacerts, поэтому keytool должен доверять ему, но затем, когда я пытаюсь импортировать подписанный сертификат SP в хранилище ключей, я получаю сообщение об ошибке:

ошибка keytool: java.security.SignatureException: Подпись не совпадает.

Я использую команду импорта:

keytool -import -v -alias sp_signed_cert -keystore idp.jks -trustcacerts -file server.crt

где server.crt - подписанный сертификат SP.

Почему я получаю эту ошибку и что я могу с этим сделать?

Единственные варианты, которые я, кажется, оставили:

  • поставьте apache перед Tomcat, на котором запущен IdP, и используйте его параметр "option_no_ca", чтобы иметь возможность использовать самозаверяющий сертификат,
  • заплатить за известный CA для подписи сертификата (хотя не совсем подходит для проверки концепции)

Ответы [ 2 ]

1 голос
/ 13 сентября 2011

поставьте apache перед Tomcat, на котором запущен IdP, и используйте его Параметр «option_no_ca» для использования самозаверяющего сертификата,

Тебе не нужен apache перед котом, также, говорят люди Shibboleth, не надо.

заплатить за известный CA для подписи сертификата (не совсем подходит для проверки концепции, хотя)

Необходимость всемирно известного ЦС только потому, что о цепочках доверия вам никогда не придется платить, если вы не хотите.

Попробуйте сначала связаться без шифрования, так как вы делаете проверку концепции.

Ошибка, когда вы делаете импорт? Почему бы вам не импортировать сертификат CA вместо отдельного SP?

1 голос
/ 13 сентября 2011

Ну, если честно, не знаю о SSO или IdP, но вот так:

Насколько я могу судить, это потому, что tomcat не принимает Сертификат ИП, который был самоподписан.

Если это действительно проблема, все, что вам нужно сделать, это импортировать этот сертификат в хранилище доверенных сертификатов Tomcat.

Вместо этого я пытаюсь создать сертификат CA и использовать его для подписи сертификат

Я понятия не имею, что вы пытаетесь сделать здесь. Подписано кем?
Каскары по умолчанию имеют сертификат всех доверенных центров сертификации, например, Verisign.
Также команда импорта, о которой вы упоминаете в посте, пытается импортировать в idp.jks, а не cacerts

...