// Metodo padrão X509 para ler o certificado. // os sertificados deverão está na pasta ~/certificado/ // Parametros certificado = "nome sem a extensão" / senha do certificado private static X509Certificate2 GetClientCertificate(ServicoParametros servicoParametros) { //Carrega o arquivo de certificado A1 (verificar sempre a validade dele. //string priKeyFile = HttpContext.Current.Server.MapPath("~/certificado/" + certificado+".pfx"); //var extensao = ".pfx"; string priKeyFile = System.IO.Path.Combine( System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).LocalPath) , "certificado" , servicoParametros.GetCertificado() ); X509Certificate2 certEncrypt = new X509Certificate2(priKeyFile, servicoParametros.GetSenhaCertificado()); // passa a senha return(certEncrypt); }
public static HttpClient ClienteHttp(ServicoParametros servicoParametros) { X509Certificate2 clientCert = GetClientCertificate(servicoParametros); requestHandler = new WebRequestHandler(); requestHandler.ClientCertificates.Add(clientCert); //Seta a parte de segurança. ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11; client = new HttpClient(requestHandler); return(client); }
public Boolean GetTokenAutenticado(ServicoParametros servicoParametros) { //Para autenticação só usar o Principal. if (!servicoParametros.GetServicoEmTeste()) { url = "https://portalunico.siscomex.gov.br"; } else { url = "https://val.portalunico.siscomex.gov.br"; } client = ChaveX509.ClienteHttp(servicoParametros); //Se setado para Teste usa a Url de teste (val.) client.BaseAddress = new Uri(url); client.DefaultRequestHeaders.Clear(); //Adicionar o cabecario do tipo de documento client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); // adioncionar o Header Role-Type - Setar nas configurações client.DefaultRequestHeaders.Add("Role-Type", servicoParametros.GetTipoRoleType()); var metodo = "/portal/api/autenticar"; // Metodo padrão para autenticacao response = client.GetAsync(metodo).Result; //se retornar com sucesso busca os dados if (!response.IsSuccessStatusCode) { return(false); } //recolhe as informações para setar. var setToken = response.Headers.FirstOrDefault(h => h.Key.Trim().Equals("Set-Token")); var setCSRFToken = response.Headers.FirstOrDefault(h => h.Key.Trim().Equals("X-CSRF-Token")); token = setToken.Value; xCSRFtoken = setCSRFToken.Value; return(true); }
public static X509Certificate2 GetCertificate(ServicoParametros servicoParametros) { X509Certificate2 clientCert = GetClientCertificate(servicoParametros); return(clientCert); }