У меня есть клиент C # RestFull, пытающийся подключиться к серверу Go.Как только я достигаю этапа рукопожатия TLS, он терпит неудачу, потому что клиент не предоставил сертификат .
Я подтвердил, что сертификат клиента был связан с объектом RestClient до выполнения запроса.
// Initializing the client
RestClient client = new RestClient(Config.SERVER_DOMAIN);
// Adding client certificate (exported from a smart card with no private key attributes)
client.ClientCertificates = Global.cpf.getCertCollection();
// defining our request then executing it
var request = new RestRequest("users", Method.GET);
var response = await client.ExecuteTaskAsync(request);
Работает только в том случае, если сертификат был прочитан из файла .PFX, где находится частный компонент.Но когда я переключаюсь на сертификат смарт-карты (который не имеет атрибутов закрытого ключа, потому что смарт-карта не хочет, чтобы они у вас были), сервер не получает сертификат от клиента.
Я понимаю, что TLSнужен личный ключ для этапа рукопожатия, однако клиентский объект не видит никакого связанного личного ключа с данным сертификатом и поэтому не распознает сертификат как действительный для установления TLS.
Я знаю, что закрытые ключи не могут быть экспортированы со смарт-карты, и я знаю, что должен быть способ сообщить объекту RestClient, что для того, чтобы пройти этап рукопожатия, вы должны связаться со смарт-картойОднако я сдался!
Может ли кто-нибудь указать мне правильное направление?