Pular para o conteúdo

Autenticação mútua SSL em servidores de NF-e e CT-e

Como fazer autenticação mútua nos servidores das SEFAZ estaduais para emissão de NF-e e CT-e, usando o certificado digital A1 e o certificado raiz da entidade certificadora.
Arnaldo Luiz Estevao arnaldoestevao
Hits: 24.532 Categoria: Perl Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Explicação e pré-requisitos

Tanto o manual do CT-e como o da NF-e, informam:
"O meio físico de comunicação utilizado será a Internet, com o uso do protocolo SSL versão 3.0, com autenticação mútua, que, além de garantir um duto de comunicação seguro na Internet, permite a identificação do servidor e do cliente por meio de certificados digitais, eliminando a necessidade de identificação do usuário mediante nome ou código de usuário e senha."

Fontes:
Este artigo explica como extrair os certificados necessários em formato PEM, e como passar os parâmetros para a lib cURL, de modo a prover esta dupla autenticação.

Pré-requisitos

As cadeias de certificação digital dos servidores, no meu caso, fiz download:
Antes de continuar, você precisará extrair as chaves do seu certificado A1 para o formato PEM, veja como fazer isso neste link:
* Atenção: Antes de continuar, tenha em mente que CAfile e CApath, são métodos opcionais, escolha entre um ou outro.

   1. Explicação e pré-requisitos
   2. Autenticações
   3. CURL lib setopt (Perl e PHP) e Wget

Impressão remota via WEB

XML de NF-e ou CT-e ou MDF-e - Como validar usando os pacotes de esquemas do Governo

Instalando Slackware 11.0 em um pendrive

Phperl, minha gambiarra para usar Perl como se fosse PHP

Perl e MySQL

Twittando com o Perl (parte 1)

Programando uma Intranet com Apache, MySQL e Perl (parte 1)

Manipulação de sockets em Perl usando o IO::Socket::INET

Enviando emails em Perl

#1 Comentário enviado por Ragen em 06/09/2012 - 18:12h
Parabéns Arnaldo,

Resolveu meu problema para fazer download do XML pela chave.

Abs
#2 Comentário enviado por teccert em 12/09/2012 - 12:31h
Ótimo artigo!
No entanto meu problema é o driver do Etoken USB da Alladin (certificado digital) que não existe para o ubuntu 12.04, eu tinha instalado no ubuntu 10.04; sendo assim estou esperando que um haker chegue com a solução.
#3 Comentário enviado por lesandro em 27/03/2015 - 10:13h

olá,
estou tentando baixar xml do sefaz SC
pelo navegador consigo baixar normalmente https://tributario.sef.sc.gov.br/tax.NET/tax.Net.NFE/ssl/Nfe_DownloadXml.ashx?id=4214020046098600050...
tenho e-cnpj A1 instalado.

tentei o comando
wget https://tributario.sef.sc.gov.br/tax.NET/tax.Net.NFE/ssl/Nfe_DownloadXml.ashx?id=4214020046098600050... --no-check-certificate --ca-directory=capath --certificate=cl.pem --private-key=key.pem

a resposta:
--2015-03-27 10:14:28-- https://tributario.sef.sc.gov.br/tax.NET/tax.Net.NFE/ssl/Nfe_DownloadXml.ashx?id=42140200460986
000506550040000164481000164489
A resolver tributario.sef.sc.gov.br...200.19.214.140
A conectar tributario.sef.sc.gov.br|200.19.214.140|:443... conectado.
ERRO: nÒo Ú possÝvel verificar o certificado de tributario.sef.sc.gov.br, emitido por '/C=BR/O=ICP-Brasil/CN=SERASA Cert
ificadora Digital v2':
Incapaz de verificar localmente a autoridade do emissor.
Para conectar a tributario.sef.sc.gov.br de forma insegura, use '--no-check-certificate'.
Incapaz de estabelecer a conexÒo SSL.
'PROD' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

alguem pode me ajudar?

Contribuir com comentário

Entre na sua conta para comentar.