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.

[ Hits: 22.485 ]

Por: Arnaldo Luiz Estevao em 03/09/2012


Autenticações



Autenticação usando CApath

Para autenticação utilizando o CApath, utilize os comandos:

cd diretorioondeaschavesforamextraidas
$ mkdir capath
$ cd capath
$ wget
http://acraiz.icpbrasil.gov.br/repositorio/v1_ff.der
wget http://acraiz.icpbrasil.gov.br/repositorio/v2_ff.der
wget http://acraiz.icpbrasil.gov.br/repositorio/v3_ff.der
openssl pkcs7 -print_certs -inform DER -outform PEM -in v1_ff.der -out v1_ff.pem
$ openssl pkcs7 -print_certs -inform DER -outform PEM -in v2_ff.der -out v2_ff.pem
$ openssl pkcs7 -print_certs -inform DER -outform PEM -in v3_ff.der -out v3_ff.pem
$ rm *.der
$ cd ..
$ c_rehash capath


Testando

* Não esqueça de trocar o endereço pelo da SEFAZ, que você deseja testar:

openssl s_client -connect www.cte.ms.gov.br:443 -CApath ./capath -cert ./cliente.pem -key ./chave.pem

Resultado esperado:
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
        Protocol : TLSv1
        Cipher : AES128-SHA
        Session-ID: 0D110000AACBABC5706428EEDC7DC28BB29CCBF9C0FDB52CBA5DB8CCE9F3796E
        Session-ID-ctx:
        Master-Key:
48C35A182272E88B46FF17A2686F422B1A18A5926ED5AE8B1354D272E8000A6549F32127F0563750F0B320950E11C59A
        Key-Arg : None
        PSK identity: None
        PSK identity hint: None
        SRP username: None
        Start Time: 1346271560
        Timeout : 300 (sec)
        Verify return code: 0 (ok)


Autenticando usando CAfile

Já para a autenticação utilizando o CAfile, digite:

cd diretorioondeaschavesforamextraidas
$ wget
http://acraiz.icpbrasil.gov.br/repositorio/v1_ff.der
wget http://acraiz.icpbrasil.gov.br/repositorio/v2_ff.der
wget http://acraiz.icpbrasil.gov.br/repositorio/v3_ff.der
openssl pkcs7 -print_certs -inform DER -outform PEM -in v1_ff.der -out v1_ff.pem
$ openssl pkcs7 -print_certs -inform DER -outform PEM -in v2_ff.der -out v2_ff.pem
$ openssl pkcs7 -print_certs -inform DER -outform PEM -in v3_ff.der -out v3_ff.pem
$ cat `ls -b v*.pem` >> cafile.pem
$ rm *.der


Testando

* Não se esqueça de trocar o endereço pelo da SEFAZ, que você deseja testar:

openssl s_client -connect www.cte.ms.gov.br:443 -CAfile ./cafile.pem -cert ./cliente.pem -key ./chave.pem

Resultado esperado:
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
        Protocol : TLSv1
        Cipher : AES128-SHA
        Session-ID: 0D110000AACBABC5706428EEDC7DC28BB29CCBF9C0FDB52CBA5DB8CCE9F3796E
        Session-ID-ctx:
        Master-Key:
48C35A182272E88B46FF17A2686F422B1A18A5926ED5AE8B1354D272E8000A6549F32127F0563750F0B320950E11C59A
        Key-Arg : None
        PSK identity: None
        PSK identity hint: None
        SRP username: None
        Start Time: 1346271560
        Timeout : 300 (sec)
        Verify return code: 0 (ok)


Página anterior     Próxima página

Páginas do artigo
   1. Explicação e pré-requisitos
   2. Autenticações
   3. CURL lib setopt (Perl e PHP) e Wget
Outros artigos deste autor

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

Impressão remota via WEB

Phperl, minha gambiarra para usar Perl como se fosse PHP

Instalando Slackware 11.0 em um pendrive

Leitura recomendada

Gerenciando redes com Perl e SNMP

Enviando notificações do Nagios para o MSN

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

URL amigável com Perl

Twittando com o Perl (parte 1)

  
Comentários
[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=42140200460986000506550040000164481000164489&amp=PROD">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=42140200460986000506550040000164481000164489&=PROD">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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts