Как вы используете Thinktecture IdentityServer 3 с настройкой сертификата

Я хочу использовать Thinktecture IdentityServer 3 для предоставления STS сайту ASP.NET, но я не знаю, как настроить сертификаты.

Как использовать SelfHost (InMem с WS-Fed) Thinktecture Identity Server 3 в качестве STS для локального сайта IIS?

Проблема у меня следующая:

Я использовал этот клиент в VS Development Server: https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients/MvcOwinWsFederation

с SelfHost (InMem с WS-Fed): IdentityServer3.Samples/tree/master/source/SelfHost%20(InMem%20with%20WS-Fed)

Все работает, подключается, аутентифицирует и выводит претензии.

Но когда я публикую клиент на локальном сайте IIS с именем WSFedClient, который пытается пройти аутентификацию на той же STS с собственным хостом, я получаю эту ошибку:

«Удаленный сертификат недействителен в соответствии с процедурой проверки».

Я следовал этому: https://github.com/IdentityServer/IdentityServer3/issues/553

... но я все еще не понимаю, что мне нужно делать.


comment
Немного обновил, дайте знать, если нужно еще. Вы много работали с этим Identity Server?   -  person JBurns    schedule 23.02.2016
comment
Вовсе нет ... действительно кажется, что это просто стандартная проблема с сертификатом; сертификат не проходит проверку, возможно, потому, что ЦС или корневой сертификат не находятся в хранилище доверенных сертификатов для машины. Есть смысл?   -  person Lynn Crumbling    schedule 23.02.2016
comment
Я уверен, что вы правы. Это часть, которую я не понимаю, к сожалению. Какой сертификат мне нужно сделать, как мне его сделать и где мне потом его установить?   -  person JBurns    schedule 23.02.2016
comment
Добавил ответ - надеюсь, он будет полезен.   -  person Lynn Crumbling    schedule 23.02.2016
comment
Может ли это быть дубликатом? " title = " ошибка при получении токена, удаленный сертификат недействителен в соответствии с проверкой"> stackoverflow.com/questions/34942051/   -  person rawel    schedule 23.02.2016


Ответы (3)


Попробуйте установить свой сертификат в хранилище «Доверенные корневые центры сертификации».

1) Запускаем ММС. В меню «Пуск» введите MMC.exe и нажмите Enter.

2) Нажмите control-M, чтобы добавить модуль. Выберите Сертификаты и нажмите Добавить.

3) Выберите учетную запись «Компьютер», затем «Далее», выберите «Локальный компьютер» и нажмите «Готово». Затем нажмите ОК.

4) Разверните Сертификаты. Щелкните правой кнопкой мыши «Доверенные корневые центры сертификации» и выберите «Все задачи», затем «Импортировать…».

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

person Lynn Crumbling    schedule 22.02.2016
comment
Спасибо, очень признателен. Я попробовал: сделал сертификат сервера в IIS, добавил его в Personal, Trusted Root CA и Trusted People. Закрыл mmc, перезапустил IIS и повторил попытку... к сожалению, тот же результат: удаленный сертификат недействителен в соответствии с процедурой проверки - person JBurns; 23.02.2016

Проверьте следующие вещи, касающиеся вашего сертификата. Скорее всего, пункт № 2 ниже вызывает эту ошибку.

  1. Проверьте, существует ли корневой сертификат ЦС в хранилище доверенных корневых центров сертификации.
  2. Проверьте, совпадает ли поле «Кому выдано» сертификата с именем хоста URL-адреса конечной точки сервера идентификации.
  3. Проверить срок действия сертификата.
  4. Проверьте, не отозван ли сертификат центром сертификации.
person Pankaj Kapare    schedule 23.02.2016
comment
Спасибо... Identity Server прослушивает localhost:44333/core. Это конечная точка URL? Сертификат называется idsrv3test.pfx и выдается idsrv3test и выдается DevRoot. Я не знаю, что это значит, почему это так или чем это должно быть, но я хотел бы быть просветленным. Спасибо еще раз. - person JBurns; 24.02.2016
comment
idsrv3test.pfx — это сертификат для подписи токена. Он отличается от сертификата https (хотя вы можете использовать его для обеих задач). Вы получаете эту ошибку, вероятно, потому, что вы не указываете на конечную точку https или сертификат https, настроенный в этой конечной точке, недействителен. Вы должны иметь возможность самостоятельно настроить действительный сертификат для этой конечной точки с помощью IIS без использования сертификата для подписи токена. - person rawel; 24.02.2016

Похоже, вы также должны настроить конечную точку SSL для обратного вызова URI. Это WSFedClient в вашем образце.

person rawel    schedule 24.02.2016
comment
На сервере разработки Visual Studio вы должны были отметить включенный SSL = true. Затем он автоматически настроит действительный SSL-сертификат для сайта. Но в локальном IIS вы должны сделать это самостоятельно. - person rawel; 26.02.2016