Login Registre-se
Resolvendo o Problema 403.7 Forbidden para Certificado A3 (ProtocolSocketFactory)  XML
Índice dos Fóruns » Artigos / Tutoriais
Autor Mensagem
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1237
Localização: Tubarão - SC
Offline

Olá Pessoal,

Um problema que vem tornando-se comum em projetos que utilizam Certificados A3 para emissão da NF-e é o erro 403.7 (Forbidden). Esse problema, acredito, tirou o sono de muita gente, inclusive o meu. Através do post de um dos membros do JavaC (chicocx) resolvi realizar alguns testes com o código proposto e criar um exemplo para compartilhar com todos.
Esse exemplo elimina também o uso das seguintes linhas de códigos antes de consumir os Web Service da NF-e:

Códigos desnecessários quando utilizado o método proposto:


O exemplo a seguir usa uma Classe que implementa ProtocolSocketFactory para criar um SSL dinâmico para a conexão Web Service. Vamos aos códigos.

Classe "SocketFactoryDinamico" (O segredo):


Conteúdo do arquivo SmartCard.cfg:


Exemplo da Consulta do Status do Serviço utilizando a Classe acima:


Para gerar o arquivo NFeCacerts utilize o código de exemplo em: http://www.javac.com.br/jc/posts/list/34-nfe-geracao-do-arquivo-cacerts-para-todos-os-estados-unico-arquivo.page

Duvidas sobre NF-e? Crie um novo tópico aqui: http://www.javac.com.br/jc/forums/show/11.page

Agradecimentos e referências:

Membros:
chicocx (http://a4t.in/xwiki/bin/view/Blog/ForbiddenNFe);
edmilson;

Referências:
Ninformáticos (http://ninformaticos.wordpress.com/2011/04/04/dinamic-ssl-com-axis-2/);

Espero que ajude em seus projetos.


Esta mensagem foi editada 1 vez. Última atualização foi em 05/07/2011 14:25:51


Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



Projeto NF-e, CT-e, CC-e? Comece Por Aqui!

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!

[WWW] [MSN]
Rebeca

JavaC Membro

Membro desde: 05/10/2011 16:30:52
Mensagens: 6
Offline

Olá!

Utilizei este código, porém tenho tido problemas. Segue:

log4j:WARN No appenders could be found for logger (org.apache.axiom.om.util.StAXUtils).
log4j:WARN Please initialize the log4j system properly.
ERROR: org.apache.axis2.AxisFault: Error signing certificate verify

Já gerei o arquivo NFeCacerts e verifiquei a validade do cartão com um outro código muito bom seu.
Sabe como solucionar este problema?
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1237
Localização: Tubarão - SC
Offline

Rebeca,

Acontece com todos os estados?

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



Projeto NF-e, CT-e, CC-e? Comece Por Aqui!

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!

[WWW] [MSN]
Rebeca

JavaC Membro

Membro desde: 05/10/2011 16:30:52
Mensagens: 6
Offline

Bom dia Maciel!

Sim acontecia isso.
Depois de algum tempo eu desisti de implementar utilizando o mac, pois a Certisign não deu suporte. E minha leitora era da Serasa então eu acreditava que o cartão tbm fosse.
Acabei demorando para perceber este problema.
Eu acredito que o erro estava relacionado a isso, pois era um certificado A3.

Consegui implementar utilizando windows, porém o arquivo NFeCacerts não estava sendo gerado pois um dos webservices de homologação da receita estava fora do ar.
Então usei o nfe-cacerts de sp msm e nem tive problemas.

Agora encomendei o A1, pois estou fazendo uma aplicação web.

Muito obrigada pelos excelentes códigos! E pela dedicação com o fórum!

[]'s
Rebeca
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1237
Localização: Tubarão - SC
Offline

Rebeca,

Obrigado, quando precisar podes contar conosco.


Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



Projeto NF-e, CT-e, CC-e? Comece Por Aqui!

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!

[WWW] [MSN]
dodi

JavaC Membro
[Avatar]

Membro desde: 25/04/2011 23:19:36
Mensagens: 8
Offline

Estou tendo o mesmo problema da Rebeca, sem solução aparente. Consigo apresentar os dados do certificado, porém ao consumir os WSs a exception ocorre. O cacerts está correto, pois uso o mesmo arquivo com um certificado A1, sem problemas.

Alguma luz?
[MSN]
dodi

JavaC Membro
[Avatar]

Membro desde: 25/04/2011 23:19:36
Mensagens: 8
Offline

Pessoal, boa tarde!

Agora sim, um problema muito estranho. Consegui fazer tudo funcionar adequadamente. Applet, com certificados A1 e A3 (SmartCard e eToken), porém está funcionando apenas uma vez a cada abertura do browser.

Fiz um client "bobinho" para consulta do Status de Serviço, rodo ele, ele retorna com o serviço em operação, na segunda tentativa, tenho o erro de SSL Handshake. Existe algum bloqueio no SEFAZ? Nunca vi nada parecido, alguém já passou por isso?
[MSN]
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1237
Localização: Tubarão - SC
Offline

Olá dodi,

O problema acontece com certificado A3? Se for esse o caso, você deve criar o certificado (KeyStore) apenas uma fez. Compartilhe a mensagem de erro para que eu possa ajudá-lo.

Att,

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



Projeto NF-e, CT-e, CC-e? Comece Por Aqui!

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!

[WWW] [MSN]
Sir Camelot

JavaC Membro
[Avatar]
Membro desde: 29/03/2012 14:47:58
Mensagens: 45
Localização: Recife - PE
Offline

Olá todos!

Estou utilizando certificado A3, quando consulto o status retorna o seguinte erro:

ERROR: org.apache.axis2.AxisFault: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.

O erro ocorre aqui:



O que pode ser? Vi que o conteúdo de dadosMsg e nfeCabecMsgE é

dadosMsg = br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub$NfeDadosMsg@1438dbe
nfeCabecMsgE = br.inf.portalfiscal.www.nfe.wsdl.nfestatusservico2.NfeStatusServico2Stub$NfeCabecMsgE@ece36

Tá correto?

Abraços

Bruno Camelo
Sir Camelot

JavaC Membro
[Avatar]
Membro desde: 29/03/2012 14:47:58
Mensagens: 45
Localização: Recife - PE
Offline

Alguém já viu algo parecido?

Bruno Camelo
Sir Camelot

JavaC Membro
[Avatar]
Membro desde: 29/03/2012 14:47:58
Mensagens: 45
Localização: Recife - PE
Offline

Acredito que o erro acontece antes do envio, pois não vejo o xml de retorno.

Bruno Camelo
Sir Camelot

JavaC Membro
[Avatar]
Membro desde: 29/03/2012 14:47:58
Mensagens: 45
Localização: Recife - PE
Offline

Erro corrigido, estava usando a URL errada.

É importante sempre ir no site da Sefaz confirmar as URLs atuais. É básico mas me pegou.

Abraços.

Bruno Camelo
macielgoncalves

Administrador
[Avatar]

Membro desde: 06/03/2011 14:49:25
Mensagens: 1237
Localização: Tubarão - SC
Offline

Pessoal,

Ótima observação do "Sir Camelot", o importante é sempre conferir se as URLs de comunicação com os Web Services não foram alteradas. Para consulta você pode utilizar o site http://www.nfe.fazenda.gov.br.

Att,

Maciel Gonçalves
Administrador (JavaC - Java Community)
Seguir no Twitter @macielgoncalves



Projeto NF-e, CT-e, CC-e? Comece Por Aqui!

Quer saber mais sobre NF-e? Acesse www.MACIELGONCALVES.com.br

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original." Albert Einstein
"Seja liberal naquilo que você aceita, e conservador naquilo que você propaga". Jon Postel.
"A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento". Platão


Emissão de Documentos Fiscais para Desenvolvedores Java


Membros do fórum,

Usem a tag [code] e [/code] quando postarem Códigos Java e ou exemplos de XMLs.
Evitem tópicos duplicados.
Tópico solucionado? Edite o primeiro post e coloque [RESOLVIDO] no final do título.
Evitem reviver tópicos antigos.

O tópico resolveu seu problema? Seja gentil, comente e ou agradeça quem contribuiu com a solução.

Obrigado!

[WWW] [MSN]
jcarlos78

JavaC Membro
[Avatar]

Membro desde: 17/08/2012 11:06:02
Mensagens: 64
Localização: Rio de Janeiro RJ
Offline

Eu to recebendo o seguinte erro ? alguma ideia do por que ?

evandromib

JavaC Membro

Membro desde: 02/10/2013 09:39:01
Mensagens: 1
Offline

Boa tarde

estou usando a rotina do appletnfe
para fazer uma consulta de serviço no sefaz estou usando o



keystore do windows , mas qdo chamo a class SocketFactoryDinamico()

e ele monta o certifcate e privateKey baseado no keystore

tenho o retorno de chave invalida

se eu mudo o keystore para KeyStore.getInstance("PKCS12")
keyStore.load(new FileInputStream(certificado), senha.toCharArray());

a rotina consulta normamente o sefaz , alguem sabe como eu continuo essa rotina sem passar fisicamente um arquivo A1 para o Keystore e apenas usando o certificados instalados no windows ?
 
Índice dos Fóruns » Artigos / Tutoriais
Ir para:   
Powered by JForum 2.1.9 © JForum Team