Login Registre-se
Problema WS Somente com Certificados Raiz ( Unknow CA) - Goias  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 1137
Localização: Goiás
Offline

Fala Galera, vou abrir esse tópico por que fiquei preocupado com um caso que está acontecendo e atualmente está sem Solução.

A Maravilhosa Sefaz do Estado de Goias Decidiu que irá manter em seu WS somente a cadeia Raiz de certificados, e que fica a cargo do emitente enviar toda a cadeia por conta propria.
Veja o que ela respondeu para o Usuario Rootrey aqui do Forum:
Em homologação aplicamos uma política de manter apenas as cadeias raiz das autoridades certificadoras, conforme nota técnica abaixo:
http://www.nfe.sefaz.go.gov.br/post/ver/182650/obr...adeia-de-certificacao-completa
Em homologação é necessário que o sistema emissor envie toda a cadeia completa do certificado. Essa mudança ainda não foi ainda feita em produção por muitos sistemas ainda não estarem adaptados, mas será feita no futuro. Por isso o ambiente de homologação já está dessa forma, para que as empresas possam ir se adequando. Você deve entrar em contato com o suporte técnico do seu sistema emissor para que seu sistema envie a cadeia completa do certificado.


Segundo o que eu entendo, nos enviamos as cadeias de duas Maneiras: Através do que está registrado no nosso Certificado + Cacert.
As cadeias registradas no Cacert, são as que o Sefaz Disponibiliza, então por exemplo se a Sefaz Decidir usar a Cadeia XYZ, ela colocaria no WS, E ao gerarmos o Cacert nos pegariamos essa cadeia.
O problema da Sefaz disponibilizar apenas a cadeia raiz é essa, o Cacert não pegarias as cadeias necessárias.

Então abro essa discussão para ver o que podemos fazer.
A solução é simples, adicionar todas as cadeias de certificado no envio da requisição.
Mas quais são essas cadeias? E como adicionar isso ao Cacert ?

Quem quiser testar, só tentar um Status de Serviço no Servidor de Homologação de Goias.
Alguns certificados funcionam, outros não!
Pelos testes q estou fazendo, os que não funcionam são certificados emitidos no ano Passado.

E ai, o que vcs acham?


Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

API NFe/NFC-e -> http://www.javac.com.br/jc/posts/list/3160-biblioteca-javanfe-com-jaxb-nfenfce-simples-v-4001.page
API CTe -> http://www.javac.com.br/jc/posts/list/2765-projeto-api-javacte-com-jaxb-cte-simples-v-3001.page
API Certificado Digital -> http://www.javac.com.br/jc/posts/list/0/2869.page#14592
API Efd Icms -> http://www.javac.com.br/jc/posts/list/2812-projeto-biblioteca-javaefdicms-sped-simples-v-20200.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe
Github Java-CTe -> https://github.com/Samuel-Oliveira/Java_CTe
Github Java-MDFe -> https://github.com/Samuel-Oliveira/Java_MDFe
Github Java-Certificado -> https://github.com/Samuel-Oliveira/Java_Certificado
Github Java-Efd-Icms -> https://github.com/Samuel-Oliveira/Java-Efd-Icms
Github Java-Efd-Contribuicoes -> https://github.com/Samuel-Oliveira/Java-Efd-Contribuicoes
Github Java-Efd-Reinf -> https://github.com/Samuel-Oliveira/Java-Efd-Reinf
Github Java-eSocial -> https://github.com/Samuel-Oliveira/Java-eSocial
Github Java-SPC -> https://github.com/Samuel-Oliveira/Java-SPC

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!
[Email] [WWW]
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

E ai Samuel, tranquilo?

Também sou de Goiás e me deparei com esse problema que você citou, tento a consulta do status do serviço com 2 certificados de Goiás emitidos por empresas diferentes, um funciona corretamente e o outro me retorna unknow_ca, isso em homologação. Em produção ambos funcionam normalmente.

Utilizavamos para envio de NFe setar as informações do certificado do cliente e do cacerts diretamente na JVM com o System.setProperty (ai nesse caso funciona normalmente Goiás em homologação e produção com todos os certificados), mas agora que estou fazendo a migração para utilizar os certificados de forma dinamica (utilizando o exemplo desse tópico http://www.javac.com.br/jc/posts/list/224-resolvendo-o-problema-4037-forbidden-para-certificado-a1-protocolsocketfactory.page) me surgiu esse problema, sendo que nos outros estados tudo funciona normalmente.

Conseguiu encontrar uma solução para isso?


Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 1137
Localização: Goiás
Offline

Pior que não.
Só atraves do System.setProperty que obtive sucesso.

A boa noticia é que isso é um erro apenas do servidor de Homologação, E que na versão 4.00 não acontece esse erro.
A má é que eles disseram que isso será replicado em todos!

Torcer pra isso nao acontecer!

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

API NFe/NFC-e -> http://www.javac.com.br/jc/posts/list/3160-biblioteca-javanfe-com-jaxb-nfenfce-simples-v-4001.page
API CTe -> http://www.javac.com.br/jc/posts/list/2765-projeto-api-javacte-com-jaxb-cte-simples-v-3001.page
API Certificado Digital -> http://www.javac.com.br/jc/posts/list/0/2869.page#14592
API Efd Icms -> http://www.javac.com.br/jc/posts/list/2812-projeto-biblioteca-javaefdicms-sped-simples-v-20200.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe
Github Java-CTe -> https://github.com/Samuel-Oliveira/Java_CTe
Github Java-MDFe -> https://github.com/Samuel-Oliveira/Java_MDFe
Github Java-Certificado -> https://github.com/Samuel-Oliveira/Java_Certificado
Github Java-Efd-Icms -> https://github.com/Samuel-Oliveira/Java-Efd-Icms
Github Java-Efd-Contribuicoes -> https://github.com/Samuel-Oliveira/Java-Efd-Contribuicoes
Github Java-Efd-Reinf -> https://github.com/Samuel-Oliveira/Java-Efd-Reinf
Github Java-eSocial -> https://github.com/Samuel-Oliveira/Java-eSocial
Github Java-SPC -> https://github.com/Samuel-Oliveira/Java-SPC

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!
[Email] [WWW]
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Goiás sempre tem que complicar as coisas..

Você está setando na System.setProperty o "javax.net.ssl.trustStore" ou "javax.net.ssl.keyStore" ou ambos?

Em todo caso já agradeço a resposta.

Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 1137
Localização: Goiás
Offline

Os Dois.

TrustStore para o Cacert, e keyStore para o Certificado.

Aqui caso queira ver, é meu projeto de Certificado que utilizo para consumo de todos os WebServices fiscais existentes no Brasil -> https://github.com/Samuel-Oliveira/Java_Certificado/blob/master/src/main/java/br/com/samuelweb/certificado/CertificadoProperties.java

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

API NFe/NFC-e -> http://www.javac.com.br/jc/posts/list/3160-biblioteca-javanfe-com-jaxb-nfenfce-simples-v-4001.page
API CTe -> http://www.javac.com.br/jc/posts/list/2765-projeto-api-javacte-com-jaxb-cte-simples-v-3001.page
API Certificado Digital -> http://www.javac.com.br/jc/posts/list/0/2869.page#14592
API Efd Icms -> http://www.javac.com.br/jc/posts/list/2812-projeto-biblioteca-javaefdicms-sped-simples-v-20200.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe
Github Java-CTe -> https://github.com/Samuel-Oliveira/Java_CTe
Github Java-MDFe -> https://github.com/Samuel-Oliveira/Java_MDFe
Github Java-Certificado -> https://github.com/Samuel-Oliveira/Java_Certificado
Github Java-Efd-Icms -> https://github.com/Samuel-Oliveira/Java-Efd-Icms
Github Java-Efd-Contribuicoes -> https://github.com/Samuel-Oliveira/Java-Efd-Contribuicoes
Github Java-Efd-Reinf -> https://github.com/Samuel-Oliveira/Java-Efd-Reinf
Github Java-eSocial -> https://github.com/Samuel-Oliveira/Java-eSocial
Github Java-SPC -> https://github.com/Samuel-Oliveira/Java-SPC

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!
[Email] [WWW]
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Vou dar uma olhada no seu projeto, obrigado pela ajuda.

Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Continuei fazendo uns testes aqui, utilizando 8 certificados de Goiás e 5 funcionou, 3 não.
Observei que os 5 que funcionaram todos foram emitidos pela AC SOLUTI Multipla e os 3 que não funcionaram foram emitodos por:
AC SAFEWEB RFB
AC SERASA RFB v2 - Não funcionou
AC CNDL RFB

Utilizando a forma de carregar o certificado com System.setPropety todos também funcionam corretamente.
Queria entender o que faz eles funcionarem com o System.setPropety que falta quando utilizamos carregar o certificado dinamicamente, mas tá díficil.

Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 1137
Localização: Goiás
Offline

Tudo Bom ract?

O grande problema é que Goias removeu todos as cadeias certificados do seu WS.
E agora quem tem que passar essas cadeias são os clientes.

Contudo, nem todos esses emissores de certificado digital colocam as cadeias completas em seus certificados emitidos.

"Porque funciona com System.setPropety?"

Isso ocorre porque o System é nativo do windows, sendo assim vc esta utilizando o windows para abrir a conexxão SSL, e o Windows já tem a maioria das cadeias instaladas.
Sendo assim ele usa elas.

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

API NFe/NFC-e -> http://www.javac.com.br/jc/posts/list/3160-biblioteca-javanfe-com-jaxb-nfenfce-simples-v-4001.page
API CTe -> http://www.javac.com.br/jc/posts/list/2765-projeto-api-javacte-com-jaxb-cte-simples-v-3001.page
API Certificado Digital -> http://www.javac.com.br/jc/posts/list/0/2869.page#14592
API Efd Icms -> http://www.javac.com.br/jc/posts/list/2812-projeto-biblioteca-javaefdicms-sped-simples-v-20200.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe
Github Java-CTe -> https://github.com/Samuel-Oliveira/Java_CTe
Github Java-MDFe -> https://github.com/Samuel-Oliveira/Java_MDFe
Github Java-Certificado -> https://github.com/Samuel-Oliveira/Java_Certificado
Github Java-Efd-Icms -> https://github.com/Samuel-Oliveira/Java-Efd-Icms
Github Java-Efd-Contribuicoes -> https://github.com/Samuel-Oliveira/Java-Efd-Contribuicoes
Github Java-Efd-Reinf -> https://github.com/Samuel-Oliveira/Java-Efd-Reinf
Github Java-eSocial -> https://github.com/Samuel-Oliveira/Java-eSocial
Github Java-SPC -> https://github.com/Samuel-Oliveira/Java-SPC

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!
[Email] [WWW]
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Samuel utilizando o "System.setPropety" realmente não é possível alterar entre os certificados sem fechar a aplicação?

Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
samuk.exe@hotmail.com

Moderador
[Avatar]

Membro desde: 31/08/2012 18:04:03
Mensagens: 1137
Localização: Goiás
Offline

É Possivel Sim.

LImpe as propriedades antes de setar os Certificados.

Samuel Oliveira
Gerente de Projetos - Autocom Sistemas
Moderador (JavaC - Java Community)
samuk.exe@hotmail.com

API NFe/NFC-e -> http://www.javac.com.br/jc/posts/list/3160-biblioteca-javanfe-com-jaxb-nfenfce-simples-v-4001.page
API CTe -> http://www.javac.com.br/jc/posts/list/2765-projeto-api-javacte-com-jaxb-cte-simples-v-3001.page
API Certificado Digital -> http://www.javac.com.br/jc/posts/list/0/2869.page#14592
API Efd Icms -> http://www.javac.com.br/jc/posts/list/2812-projeto-biblioteca-javaefdicms-sped-simples-v-20200.page

Github - > https://github.com/Samuel-Oliveira
Github Java-NFe -> https://github.com/Samuel-Oliveira/Java_NFe
Github Java-CTe -> https://github.com/Samuel-Oliveira/Java_CTe
Github Java-MDFe -> https://github.com/Samuel-Oliveira/Java_MDFe
Github Java-Certificado -> https://github.com/Samuel-Oliveira/Java_Certificado
Github Java-Efd-Icms -> https://github.com/Samuel-Oliveira/Java-Efd-Icms
Github Java-Efd-Contribuicoes -> https://github.com/Samuel-Oliveira/Java-Efd-Contribuicoes
Github Java-Efd-Reinf -> https://github.com/Samuel-Oliveira/Java-Efd-Reinf
Github Java-eSocial -> https://github.com/Samuel-Oliveira/Java-eSocial
Github Java-SPC -> https://github.com/Samuel-Oliveira/Java-SPC

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!
[Email] [WWW]
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Realmente, agora analisando bem para o envio de NF-e consigo alternar entre os certificados fazendo dessa forma.



Meu problema é quando faço manifestação de destinátario, se busco as notas com o certificado de uma empresa, quando tento na segunda empresa com certificado diferente me da rejeição de que o cnpj base consultado difere do cnpj base do certificado digital, deve ser outro problema isso fora limpar o certificado.

Esta mensagem foi editada 1 vez. Última atualização foi em 01/12/2017 08:40:45


Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
ract

JavaC Membro

Membro desde: 16/10/2017 09:26:55
Mensagens: 12
Localização: Goiás
Offline

Pra quem encontrar esse problema e não quiser resolver utilizando System.setProperty encontrei uma forma de resolver utilizando a SocketFactoryDinamico.
Na criação da KeyManager no método getCertificateChain acrescentem o seguinte código para carregar a cadeia de certificados:




Robert Frederico
Goiânia - GO
Desenvolvedor Santri Soluções
alvarinojr

JavaC Membro

Membro desde: 04/12/2017 16:58:56
Mensagens: 1
Offline

Há possibilidade de que o problema abaixo seja causado pelo certificado do cliente ? recebo essa mensagem de erro porem as vezes os documentos são autorizados normalmente, ou seja o erro é esporádico, para o mesmo certificado, na sefaz do PI.

mhas22

JavaC Membro
[Avatar]

Membro desde: 12/07/2016 11:38:41
Mensagens: 6
Localização: Morrinhos - Goás
Offline

Vi aqui nas respostas do tópico que esse problema não acontece na versão 4.0, mas estou fazendo a mudança aqui e está me retornando o mesmo erro:
Connection has been shutdown: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca

Ambiente de homlogação de Goiás. Já atualizei o arquivo cacerts, mudei também as url dos serviços para as da versão 4, mas o erro persiste... alguém tem alguma solução?
fredimartins

JavaC Membro

Membro desde: 02/03/2018 09:31:51
Mensagens: 2
Offline

Fala pessoal!

Consegui resolver utilizando a classe "SocketFactoryDinamico.java" e a dica do @ract

Possuo um .pfx com a cadeia de certificados completa, utilizei o seguinte comando para importar no cacert:

Saída:
Entrada do alias EMPRESA s/a importada com êxito.
Comando de importação concluído: 1 entradas importadas com êxito, 0 entradas fa
lharam ou foram canceladas

Código alterado:

keyStore.aliases().nextElement() também da para pegar o alias.
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team