Маршрутизация WCF с безопасностью сообщений

У меня есть служба WCF с безопасностью сообщений Аутентификация.

Я хочу настроить службу маршрутизации для балансировки нагрузки.

По какой-то причине это не работает, я включил includeExceptionDetailInFaults, чтобы увидеть исключения, поэтому в клиенте я вижу:

Сертификат клиента не предоставляется. Укажите сертификат клиента в ClientCredentials.

Кажется, что сертификат не перенаправлен из службы router- > .

В настоящее время клиент/маршрутизатор/служба находится на одном компьютере, поэтому у меня есть все сертификаты, но если я развожу их на другой машине, у маршрутизатора должны быть закрытые ключи?

Кроме того, если я хочу установить незащищенное соединение между маршрутизатором и сервисом (разгрузить безопасность), как я могу предоставить идентификатор вызывающего?

ИЗМЕНИТЬ: Для всех клиентов/маршрутизаторов (как сервера, так и клиента)/сервера система безопасности настроена одинаково:

            <security mode="Message">
                <message clientCredentialType="Certificate" negotiateServiceCredential="false"
                    algorithmSuite="Default" establishSecurityContext="false" />
            </security>

Ответы

Ответ 3

Сертификат клиента не предоставляется. Укажите клиентский сертификат в ClientCredentials.

Я видел эту ошибку, когда сертификат службы не соответствует имени домена хоста.

Если вы все еще видите эту проблему, можете опубликовать некоторые записи о своей конфигурации?

Ответ 4

1) Сначала попробуйте установить сертификат на стороне клиента по коду.

ChannelFactory<IService1> factory = 
             new ChannelFactory<IService1>("Service1_Endpoint");
factory.Credentials.ServiceCertificate.SetDefaultCertificate(
             System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser,
             System.Security.Cryptography.X509Certificates.StoreName.My,
             System.Security.Cryptography.X509Certificates.X509FindType.FindBySubjectName,
             "<SeriveCerificateName>");

Если у вас действительно есть проблема с сертификатом, вы быстро получите исключение при запуске приложения.

2) Если нет исключения, проверьте чеки сертификата службы на обеих сторонах.