jun
15
2015

Integração com o Invoicy via Java

15 de junho de 2015

Índice

-

Olá,

Se o seu ERP utiliza a linguagem Java e está integrando com o InvoiCy leia este artigo.

A comunicação com o Web Service do InvoiCy se dá através de uma comunicação segura, dependendo de como a integração foi desenvolvida pode retornar o seguinte erro ao comunicar com o InvoiCy em produção:

Warning: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
Warning: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
Warning: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLHands
hakeException: sun.security.validator.ValidatorException: PKIX path building fai
led: sun.security.provider.certpath.SunCertPathBuilderException: unable to find
valid certification path to requested target
No content received
Exception in thread “main” org.eclipse.swt.SWTException: Failed to execute runna
ble (java.lang.RuntimeException: Connection has been shutdown: javax.net.ssl.SSL
HandshakeException: sun.security.validator.ValidatorException: PKIX path buildin
g failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target(-10001))

Alguns parceiros disponibilizaram a solução técnica a seguir para resolver este erro.

Solução para quem desenvolve em Genexus compilando a aplicação em Java:

1. Passo – Criar keystore

Estando na pasta BIN do JRE, digitar o seguinte comando “keytool -genkey -keystore c:\keystore.jks” e pressionar a tecla “enter”, será solicitada a inserção da senha do armazenamento da chave que deve ser: “qualquer_senha”, após pressionar “enter” e confirmar a senha será solicitado para redigitar, é só digitar novamente: “senha_escolhida” e pressionar “enter”, responder as perguntas como informado abaixo:

Após todos os dados informados, será solicitado que você informe a senha de armazenamento novamente “senha_escolhida” e então confirme a senha “senha_escolhida” e pronto, keystore criado.

2. Passo – Assinar keystore com o certificado

Tendo o certificado digital da Migrate salvo em seu computador, assine o keystore com o certificado digital, conforme exemplo abaixo:

keytool -import -trustcacerts -alias <alias> -file <file> -keystore <keystore>

Ex: keytool -import -trustcacerts -alias nfse -file c:\-.migrate.info/desenvolvedores/web/.crt -keystore c:\keystore.jks

Você terá o keystore assinado com o certificado digital.

3. Passo – Iniciar a aplicação JAVA vinculando ao keystore

Inicialize a aplicação JAVA, adicionando o keystore com o comando:

– Djavax.net.ssl.trustStore=”CAMINHO_CERTIFICADO”

– Djavax.net.ssl.trustStorePassword=SENHA, conforme exemplo abaixo:

Java -Djavax.net.ssl.trustStore=” c:\keystore.jks “

-Djavax.net.ssl.trustStorePassword=senha123 –cp gxclassr.zip;swt.jar;. umain

  • Solução para quem desenvolve em Java:

Segue abaixo passos para assinar digitalmente os jars com o certificado da Migrate.
O comando keytool deve ser usado dentro da pasta “bin” da “jre”.

1. Passo – Criar keystore

Digitar o seguinte comando:

keytool -genkey -keystore <CAMINHO>\<NOME_KEYSTORE>” e pressionar a tecla “enter”, será solicitada a inserção da senha do armazenamento da chave que deve ser: “qualquer_senha”, após pressionar “enter” e confirmar a senha será solicitado para redigitar, é só digitar novamente: “senha_escolhida” e pressionar “enter”, responder as perguntas como informado abaixo:

Ex:keytool -genkey -keystore c:\pastax.gerenciador.keystore
Qual é o seu nome e o seu sobrenome?
Desenvolvimento

Qual é o nome da sua unidade organizacional?
Desenvolvimento

Qual é o nome da sua empresa?
EmpresaX

Qual é o nome da sua cidade ou localidade?
Estado

Qual é o nome do seu estado ou município?
Cidade

Quais são as duas letras do código do país desta unidade?
UF

Após todos os dados informados, será solicitado que você informe a senha de armazenamento novamente “senha_escolhida” e então confirme a senha “senha_escolhida” e pronto, keystore criado.

2. Passo – Assinar keystore com o certificado

keytool -import -trustcacerts -alias <alias> -file <file> -keystore <keystore>

Ex: keytool -import -trustcacerts -alias nfse -file c:\-.migrate.info/desenvolvedores/web/.crt -keystore c:\pastax.gerenciador.keystore

Você terá o keystore assinado com o certificado digital.

3. Passo – Assinar os jars da aplicação

Assinar todos os Jars até os de dentro da lib com o certificado.

jarsigner -keystore “C:\pastax.gerenciador.keystore”

“C:\pastax.gerenciador_lib\axis.jar” nfse

Será solicitada a senha de armazenamento criada no keystore.

Pronto, arquivo de certificado criado, jars assinados.

4. Passo – Dentro da aplicação

Nas classes de controle, que instância as conexões com os webservices, é necessário setar as seguintes propriedades.

public static final String TRUSTSTORE = “javax.net.ssl.trustStore”;
public static final String TRUSTSTOREPASSWORD = “javax.net.ssl.trustStorePassword”;
public static final String NOMEARQUIVOCHAVE = “pastax.gerenciador.keystore”;
public static final String SENHAARQUIVOCHAVE = “senhaA”;

System.setProperty(TRUSTSTORE, <CAMINHO DO KEYSTORE>);
System.setProperty(TRUSTSTOREPASSWORD, SENHAARQUIVOCHAVE);

https://mostbetsitez.com, https://mostbetaz2.com, https://1xbet-az24.com, https://vulkanvegas-bonus.com, https://mostbetcasinoz.com, https://mostbet-azerbaycanda.com, https://mostbet-az24.com, https://vulkan-vegas-spielen.com, https://1winaz888.com, https://vulkan-vegas-24.com, https://1xbetaz3.com, https://1xbet-azerbaycanda.com, https://1xbetsitez.com, https://mostbet-royxatga-olish24.com, https://mostbet-azerbaycan-24.com, https://mostbet-uzbekistons.com, https://mostbet-azer.xyz, https://pinup-bet-aze.com, https://1xbet-azerbaycanda24.com, https://1xbet-az-casino2.com, https://1xbetaz777.com, https://mostbet-qeydiyyat24.com, https://mostbetuztop.com, https://1win-az-777.com, https://pinup-azerbaycanda24.com, https://1xbet-az-casino.com, https://mostbet-az.xyz, https://vulkanvegaskasino.com, https://mostbet-azerbaycanda24.com, https://pinup-qeydiyyat24.com, https://1win-qeydiyyat24.com, https://vulkan-vegas-888.com, https://mostbetuzbekiston.com, https://1xbetkz2.com, https://mostbet-ozbekistonda.com, https://mostbet-kirish777.com, https://mostbetsportuz.com, https://mostbettopz.com, https://vulkan-vegas-erfahrung.com, https://1xbetaz888.com, https://mostbet-oynash24.com, https://mostbetaz777.com, https://kingdom-con.com, https://1win-azerbaycanda24.com, https://mostbet-uz-24.com, https://vulkan-vegas-kasino.com, https://1x-bet-top.com, https://most-bet-top.com, https://mostbet-azerbaijan2.com, https://1winaz777.com, https://1xbetaz2.com, https://vulkan-vegas-casino2.com, https://vulkanvegasde2.com, https://vulkan-vegas-bonus.com, https://1xbetcasinoz.com, https://pinup-azerbaijan2.com, https://mostbetuzonline.com, https://1win-azerbaijan2.com, https://pinup-az24.com, https://1win-az24.com, https://1xbet-azerbaijan2.com, https://pinup-bet-aze1.com, https://1win-azerbaijan24.com, https://mostbet-az-24.com, https://mostbet-azerbaijan.xyz