The SSL connection could not be established, see inner exception. The credentials supplied to the package were not recognized

1k Views Asked by At

I'm doing an integration with the Itaú bank api to generate slips. This integration required the sending of a digital certificate.

My application is hosted on Azure.

When I run the application locally the connection happens successfully, however when I upload to the server it returns the error below.

The SSL connection could not be established, see inner exception. The credentials supplied to the package were not recognized - System.Net.WebException: The SSL connection could not be established, see inner exception. The credentials supplied to the package were not recognized ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.ComponentModel.Win32Exception (0x8009030D): The credentials supplied to the package were not recognized

public async Task<AuthTokenItau> AutenticarItauJwt()
        {
            var request = (HttpWebRequest)WebRequest.Create("https://sts.itau.com.br/api/oauth/token");
            request.ContentType = "application/x-www-form-urlencoded";
            request.Method = "POST";

            var dataBody = "grant_type=" + Uri.EscapeDataString("client_credentials");
            dataBody += "&client_id=" + Uri.EscapeDataString("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");
            dataBody += "&client_secret=" + Uri.EscapeDataString("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX");

            var body = Encoding.ASCII.GetBytes(dataBody);
            request.ContentLength = body.Length;

            string response = "";
            Stream myWriter = null;

            try
            {

                var caminhoCertificado = $@"{_webHostingEnvironment.ContentRootPath}\App_Data\Certificado\certifica_digital.pfx";
                var senhaCertificado = @"senhaZZZZ";

                X509Certificate2 certificate = new X509Certificate2(caminhoCertificado, senhaCertificado, X509KeyStorageFlags.DefaultKeySet);
                request.ClientCertificates.Add(certificate);

                RegistraLog.Log($"Certificado -{certificate.ToString()}");

                myWriter = request.GetRequestStream();
                myWriter.Write(body, 0, body.Length);

                var requestResponse = (HttpWebResponse)request.GetResponse();

                RegistraLog.Log($"Response : {requestResponse.Headers.AllKeys} - {dataBody.ToString()}");

                response = new StreamReader(requestResponse.GetResponseStream()).ReadToEnd();

                RegistraLog.Log($"Response -{response.ToString()}");

                return JsonConvert.DeserializeObject<AuthTokenItau>(response); ;
            }
            catch (Exception ex)
            {
                RegistraLog.Log($"Erro ao solicitar o token.\r\nDetalhe: {ex.Message} - {ex.ToString()}");

                throw new Exception("Erro ao solicitar o token.\r\nDetalhe: " + ex.Message);
            }
            finally
            {
                if (myWriter != null)
                    myWriter.Close();
            }
        }

The SSL connection could not be established, see inner exception. The credentials supplied to the package were not recognized - System.Net.WebException: The SSL connection could not be established, see inner exception. The credentials supplied to the package were not recognized ---> System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception. ---> System.ComponentModel.Win32Exception (0x8009030D): The credentials supplied to the package were not recognized at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Net.Security.SslStream.ThrowIfExceptional() at System.Net.Security.SslStream.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Net.Security.SslStream.<>c.b__65_1(IAsyncResult iar) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) --- End of inner exception stack trace --- at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken) at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at System.Net.HttpWebRequest.SendRequest() at System.Net.HttpWebRequest.GetResponse() --- End of inner exception stack trace --- at System.Net.HttpWebRequest.GetResponse() at EscolaPro.ControleBoleto.AuthItauService.AutenticarItauJwt() in D:\GlobalManage\Repositorio\globalmanage\global-manage-api-web\EscolaPro.ControleBoleto\AuthItauService.cs:line 58

0

There are 0 best solutions below