Сертификаты на серверах и WCF
У меня есть веб-сайт, служба wcf и служба маркеров безопасности (STS), работающая на одном сервере. Все отлично работает. Я сейчас пытаюсь разделить peices между серверами. Когда веб-сайт пытается войти в систему, чтобы получить токен, я получаю ошибки SSL-сертификата.
Это было бы на Server 2008 и IIS 7.5 и моем Windows 7 IIS 7.5, пока я отлаживаю.
An error occurred while making the HTTP request to https://x.x.x.x/STS/issue/wstrust/mixed/username. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by...
Я создал самозаверяющий сертификат на сервере STS и экспортировал его на сервер веб-сайта. Я также экспортировал ключ и дал IIS доступ к ключу на сервере веб-сайта. Это прошло через кучу ошибок WIF, оно не запустится, но я не уверен, что это правильно.
Я также пробовал [netsh http add sslcert ipport:0.0.0.0:44400 и т. Д.], Но я не уверен, какой порт использовать, я пробовал полдюжины разных, но ни один из них не работает, а 443 не работает.
Веб-сайт использует WSTrustChannelFactory для создания соединения. Это бомбы на канал channel.issue в нижней части.
var factory = new WSTrustChannelFactory(
new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
new EndpointAddress(signInEndpoint));
factory.TrustVersion = TrustVersion.WSTrust13;
factory.Credentials.UserName.UserName = userName;
factory.Credentials.UserName.Password = password;
var channel = factory.CreateChannel();
var rst = new RequestSecurityToken
{
RequestType = RequestTypes.Issue,
AppliesTo = new EndpointAddress(realm),
KeyType = KeyTypes.Bearer
};
try
{
var genericToken = channel.Issue(rst) as GenericXmlSecurityToken;
** РЕДАКТИРОВАТЬ **
Я также настроил серверы веб-сайтов iis-порт привязок https 443 по умолчанию на использование сертификата, импортированного с сервера STS, и получил ту же ошибку.
** Конец редактирования **
Я был на всем протяжении Google и Stackru и, хотя многие вопросы кажутся близкими, ни один из утвержденных ответов не сработал.
Идеи? Я нуб сервера / аппаратного обеспечения, так что "для версии чайников" было бы неплохо.
Спасибо!
1 ответ
Поскольку вы используете самозаверяющий сертификат, обязательно отключите проверку цепочки сертификатов или добавьте ее в доверенное хранилище. Похоже, что вы используете URL-адрес IdentityServer, там вы можете отключить строгие требования к конечной точке, а на клиенте использовать UserNameWSTrustBinding только с защитой сообщений.