assinaturas de arquivos xml da NFe  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

Apos o processo de assinatura, uso as linhas de cmd abaixo para transformar o Document em String:


onde "doc" é o Document tratado.

E depois assim para salvar em disco:

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
gilmaslima
JavaEvangelist
[Avatar]

Membro desde: 17/07/2008 14:40:26
Mensagens: 430
Localização: { Entre um abre e fecha "chaves" }
Offline

Estou com o seguinte erro ao tentar assinar o xml:



Minha classe está assim:



Meu certificado é do tipo .pfx

Estou usando essa ferramenta para criar o keystore http://yellowcat1.free.fr/index_ktl.html

Não sei se estou fazendo certo.
Tentei pela linha de comando e também não deu certo

Gilmar Lima

SCJA 1.0
SCJP 5.0
OCWCD 5


public boolean soMeFu(){
while(true){
return true;
}
}
[MSN]
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

Verifique se esta linha esta sendo executada:

System.out.println("Chave Privada encontrada!");

Pelo que entendi, vc esta tendo problemas em ler o jks.

Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
gilmaslima
JavaEvangelist
[Avatar]

Membro desde: 17/07/2008 14:40:26
Mensagens: 430
Localização: { Entre um abre e fecha "chaves" }
Offline

Consegui resolver de uma forma mais fácil graças a esses post do thingol http://www.guj.com.br/posts/list/15/87934.java

Usei o comando: keytool -list -storetype pkcs12 -keystore "Nfe emissor.pfx" e peguei o alias do meu .pfx

E mudei o método que pega a chave privada.

Ficou assim:



O melhor de tudo foi que eu não precisei criar nenhum keystore.

Nada como vasculhar o fórum!!!

Gilmar Lima

SCJA 1.0
SCJP 5.0
OCWCD 5


public boolean soMeFu(){
while(true){
return true;
}
}
[MSN]
ernanics
HelloWorld

Membro desde: 04/05/2009 08:49:31
Mensagens: 12
Offline

Boa Tarde Pessoal!

Achei que já havia finalizado a NFe, porém apareceu mais um erro que não consigo resolver.
A SEFAZ do Paraná obriga que eu coloque o namespace na tag NFe, como abaixo:

<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
<idLote>1</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
(...)

mas quando eu assino meu documento e transformo ele de um objeto Document para um objeto String,
eu estou perdendo este namespace, e o meu documento xml está ficando assim

<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
<idLote>1</idLote>
<NFe>
(...)

Alguém sabe o que pod estar acontecendo?
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

Tente assim a saida:



Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
ernanics
HelloWorld

Membro desde: 04/05/2009 08:49:31
Mensagens: 12
Offline

É exatamente assim que eu estou fazendo...

será q não existe uma outra maneira, ou alguma propriedade que seja necessário setar, pois de acordo com a norma da w3c eu não posso ter tags com o mesmo namespace sem um prefixo, já que prefixos não são permitidos segundo o Layout da NFe, deve haver alguma coisa que eu tenho que fazer para poder ter namespaces repetidos, e aí, alguém arrisca?


Att.


Ernani C.S.,
Desenvolvimento - Joinville/SC
PadrE
JavaEvangelist
[Avatar]

Membro desde: 03/04/2006 00:01:40
Mensagens: 407
Offline

Opa...

Pessoal estou com problemas em me comunicar com o ws... nao consigo tirar o erro:
unable to find valid certification path to requested target

O procedimento que usei:
1. Baixei o Associacao.pfx da SEFAZ;
2. Importei usando o próprio JRE (javaws) e exportei o arquivo Associacao.cer;
3. pelo keytool adicionei o .cer no CAcerts na pasta security do JRE.
4. Setei as variaveis do sistema assim:

5. To com o maledito erro:


Mesmo se tentar chamar os outros métodos do WS, recebo o mesmo erro. Estou usando o eclipse e ele ta configurado para usar o JDK1.5.

Olhei dentro da classe que chama o metodo e o link eh "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico"... o de vocês esta assim tb ?

Preciso configurar algum certificado do WS na minha máquina ?


Vlw!

**************************************
Progredi mais um pouco.. (eu acho rs)

Acertei o keytool para o certificado (arquivo .cer), mas agora to com o seguinte erro:


O que errei na hora de setar os parâmetros ?

This message was edited 1 time. Last update was at 11/08/2009 18:13:08


PadrecO
"O conhecimento o libertará !"
ernanics
HelloWorld

Membro desde: 04/05/2009 08:49:31
Mensagens: 12
Offline

O problema é o certificado.
Você não vai conseguir conectar os servidores da receita federal com este certificado, é necessário um certificado válido. Peça ele aos seus clientes ou compre um e-CNPJ, como fizemos aqui na empresa.

Olhe no site da certisign e dos correios (nos correios é mais barato)... o processo demora em torno de 96 horas, entre a compra do certificado e a autorização de uso.

Informe-se...

Outro problema é relacionado ao trustStore
ele está incorreto



Pesquise sobre SSL e o que é um trustStore você vai aprender...
procure por isso: montar JKS em java...

Para montar este trustStore JKS é necessário baixar as chaves públicas (.cer) das SEFAZ que você
pretende enviar notas... depois é só colocar tudo neste trustStore.
Este trustStore são os certificado que você vai aceitar, assim como tem no IE (lista de certificado aceitos, quer dizer que aquelas pessoas são confiáveis).


Att.

Ernani C.S.,
Desenvolvimento - Joinville/SC
PPINFO ERP - Sistema Web de Gestão Empresarial
http://www.ppinfo.com.br

This message was edited 1 time. Last update was at 12/08/2009 14:32:56

PadrE
JavaEvangelist
[Avatar]

Membro desde: 03/04/2006 00:01:40
Mensagens: 407
Offline

ernanics wrote:O problema é o certificado.
Você não vai conseguir conectar os servidores da receita federal com este certificado, é necessário um certificado válido. Peça ele aos seus clientes ou compre um e-CNPJ, como fizemos aqui na empresa.

Olhe no site da certisign e dos correios (nos correios é mais barato)... o processo demora em torno de 96 horas, entre a compra do certificado e a autorização de uso.

Informe-se...

Outro problema é relacionado ao trustStore
ele está incorreto



Pesquise sobre SSL e o que é um trustStore você vai aprender...
procure por isso: montar JKS em java...

Para montar este trustStore JKS é necessário baixar as chaves públicas (.cer) das SEFAZ que você
pretende enviar notas... depois é só colocar tudo neste trustStore.
Este trustStore são os certificado que você vai aceitar, assim como tem no IE (lista de certificado aceitos, quer dizer que aquelas pessoas são confiáveis).


Att.

Ernani C.S.,
Desenvolvimento - Joinville/SC
PPINFO ERP - Sistema Web de Gestão Empresarial
http://www.ppinfo.com.br


Cara.. vlw as dicas... vou ver isso sim... principalmente a configuração dos .cer.. que preciso deixar de um jeito bem flexivel..
Acho que consegui resolver essa parte... e me deparei com outro problema.. que ai ja acho que o certificado que estou usando nao funciona...

postei minha duvida em outro post http://www.guj.com.br/posts/list/195/72325.java#723150 (são tantos de NFe que nem sei mais em qual postar.. hehe).

Vlw
****************************
Mudei o código e agora ta me dando:


Modifiquei o codigo para:


No keystore coloquei os .cer do arquivo SEFAZSP_homologacao.p7b

=/

This message was edited 1 time. Last update was at 12/08/2009 17:56:53


PadrecO
"O conhecimento o libertará !"
javer
Virtual Machine Man
[Avatar]

Membro desde: 10/09/2007 12:06:29
Mensagens: 642
Localização: São Paulo - SP
Offline

Alguém teria um exemplo do código para geração do XML?

------------------------------------------------------
Java Desktop Developer (Swing) - www.javasis.com.br
--- Disponível para Emprego ---
[WWW]
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

Algum colega de MG neste forum?
Se sim, por favor, me mande uma mensagem privada.

Grato

Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

javer wrote:Alguém teria um exemplo do código para geração do XML?


cara, você pode usar um framework p/ gerar o xml há vários, como o xstream, normalmente voce modela seu xml em um beam, e o frame gera o xml, ajuda bastante

abraço

Java, Clarion, HB++, PostgreSQL
[MSN]
andredurao
What is classpath?
[Avatar]

Membro desde: 04/04/2006 23:25:19
Mensagens: 6
Offline

estou usando o código do gilmaslima, (muito obrigado por ter postado, ajudou d+)
com algumas alteraçoes para a nota de BH/MG. O xml tem algumas diferenças mínimas como:

ao invés de infNFe é InfNfse
e o param id é todo em minúsculo.

bem, peguei o alias usando o keytool e rodei o codigo, ok gerou o assinado.xml
porém comparando com a nota de exemplo pela sec. faz. faltou um parâmetro em uma tag no xml

na assinatura gerada ficou assim a tag:
e no arq exemplo assim: onde esse num é o id da nota

ainda nao consegui testar se a assinatura vai ser validada, mas já adiantando
alguem tem idéia de como adicionar esse Id na nota?
[WWW] [MSN]
philler
JavaTeenager
[Avatar]

Membro desde: 26/11/2007 18:34:06
Mensagens: 184
Offline

esta parte da assinatura (Id="NfseAssSMF_999999990001911733160024200900000000017")
é a URI do xml que vai ser assinado.
Caso vc nao informe a URI, o assinador assina todo o arquivo, o que nao é o caso da NFe.



Alencar

---------------------------------------------
Philler Informatica - Alencar
"Feliz aquele que transfere o que sabe
e aprende o que ensina" Cora Coralina
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team