Как отправить сертификат через https - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь подключиться к серверу с помощью сертификата. Что дало мне.

Эта команда cURL работает, и я пытаюсь сделать это в C #.

curl.exe -vvv --cert client.crt --key client.key --header -X POST "https://foobar.com:7777" --data "TERMINAL_ID=130574061&GAME_ID=7105&DRAW_ID=1200"

            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

            X509Certificate2 cert = new X509Certificate2("client.crt", "PASSWORD");

            WebRequestHandler clientHandler = new WebRequestHandler
            {
                Credentials = CredentialCache.DefaultCredentials,
                AllowAutoRedirect = false,
                PreAuthenticate = true,
                ClientCertificateOptions = ClientCertificateOption.Manual,
                //SslProtocols = SslProtocols.Tls12,
                CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore),
                //ServerCertificateCustomValidationCallback = delegate { return true; },
            };


            clientHandler.ClientCertificates.Add(cert);
            var content = new StringContent(PathData.Data);

            ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

            using (HttpClient client = new HttpClient(clientHandler))
            {
                client.BaseAddress = new Uri(PathData.ShortUri);
                var response = await client.PostAsync("/fprov/fcgi_gameprops?id=30", content);
            }

Когда я выполняю PostAsync, я получаю сообщение об ошибке «WebException: запрос был прерван: не удалось создать безопасный канал SSL / TLS.»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...