Login Registre-se
Certificado A3 e WEB [RESOLVIDO]  XML
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Autor Mensagem
auuug

JavaC Membro

Membro desde: 24/03/2019 15:25:02
Mensagens: 4
Offline

Queria saber como é feito a integração do certificado A3 com o ambiente Web atualmente, procurei alguns tópicos aqui no Forum mas acabei ficando perdido.

Sou um estudante que esta desenvolvendo um trabalho sobre certificados digitais, peço desculpa se essa pergunta já foi respondida.

Esta mensagem foi editada 1 vez. Última atualização foi em 25/03/2019 23:11:30

samuk.exe@hotmail.com

Moderador
[Avatar]

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

Olá, Em java Acessar A via web é impossivel.
O que fazemos é criar soluções nos clientes que fazem o processo e enviam para o servidor.

Aqui tem uma ótima API para certificados, talvez possa te ajudar em seu trabalho: https://github.com/Samuel-Oliveira/Java_Certificado

Samuel Oliveira
Gerente de Projetos - SW Software e Consultoria
Moderador (JavaC - Java Community)
samuel@swconsultoria.com.br

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

http://www.swconsultoria.com.br/

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]
auuug

JavaC Membro

Membro desde: 24/03/2019 15:25:02
Mensagens: 4
Offline

samuk.exe@hotmail.com wrote:Olá, Em java Acessar A via web é impossivel.
O que fazemos é criar soluções nos clientes que fazem o processo e enviam para o servidor.

Aqui tem uma ótima API para certificados, talvez possa te ajudar em seu trabalho: https://github.com/Samuel-Oliveira/Java_Certificado


Obrigado pela resposta vou dar uma olhada na API, pelo que entendi antigamente esse processo era feito por Applets que hoje já não são mais suportados. Tive interesse em saber porque o suporte nativo dos navegadores é limitado. Nas minhas pesquisas encontrei bastante material para o suporte de certificados A1, mas sobre o A3 não estava conseguindo.
GGarcia

JavaC Membro
[Avatar]

Membro desde: 28/05/2013 17:12:21
Mensagens: 306
Offline

auuug wrote:
samuk.exe@hotmail.com wrote:Olá, Em java Acessar A via web é impossivel.
O que fazemos é criar soluções nos clientes que fazem o processo e enviam para o servidor.

Aqui tem uma ótima API para certificados, talvez possa te ajudar em seu trabalho: https://github.com/Samuel-Oliveira/Java_Certificado


Obrigado pela resposta vou dar uma olhada na API, pelo que entendi antigamente esse processo era feito por Applets que hoje já não são mais suportados. Tive interesse em saber porque o suporte nativo dos navegadores é limitado. Nas minhas pesquisas encontrei bastante material para o suporte de certificados A1, mas sobre o A3 não estava conseguindo.


Basicamente o suporte para acesso a Applets foi desativado porque era possível executar códigos arbitrários de forma simples, self-signed e o usuário nem ficaria sabendo.

Sei que o que vale é a experiência e o aprendizado, mas JAMAIS use certificado A3 para embientes web. Certificados A3 são feitos para aplicações desktop, acesso single-user e quesito praticidade zero.

Em ambientes web, o ideal é sempre o A1 porque quem faz toda a assinatura e manuseio do certificado é o servidor. Se configura apenas uma vez (importar o certificado e colocar a senha) e você tem um ambiente multi-usuário, local ou remoto, seguro e sem necessitar de soluções híbridas (leia-se, gambiarras) para certificado A3 em web.

Abraço

If you're here, who's running hell?
auuug

JavaC Membro

Membro desde: 24/03/2019 15:25:02
Mensagens: 4
Offline

GGarcia wrote:
Basicamente o suporte para acesso a Applets foi desativado porque era possível executar códigos arbitrários de forma simples, self-signed e o usuário nem ficaria sabendo.

Sei que o que vale é a experiência e o aprendizado, mas JAMAIS use certificado A3 para embientes web. Certificados A3 são feitos para aplicações desktop, acesso single-user e quesito praticidade zero.

Em ambientes web, o ideal é sempre o A1 porque quem faz toda a assinatura e manuseio do certificado é o servidor. Se configura apenas uma vez (importar o certificado e colocar a senha) e você tem um ambiente multi-usuário, local ou remoto, seguro e sem necessitar de soluções híbridas (leia-se, gambiarras) para certificado A3 em web.

Abraço


Obrigado pela resposta, entendo que os certificados A3 vão contra os princípios da web, mas estou pesquisando justamente para entender sua "aplicabilidade". Algumas empresas fornecem o acesso aos certificados via Extensão de Browser e uma aplicação instalada na máquina do usuário, fiquei interessado em descobrir como isso é feito de maneira transparente e prática.
GGarcia

JavaC Membro
[Avatar]

Membro desde: 28/05/2013 17:12:21
Mensagens: 306
Offline

auuug wrote:
GGarcia wrote:
Basicamente o suporte para acesso a Applets foi desativado porque era possível executar códigos arbitrários de forma simples, self-signed e o usuário nem ficaria sabendo.

Sei que o que vale é a experiência e o aprendizado, mas JAMAIS use certificado A3 para embientes web. Certificados A3 são feitos para aplicações desktop, acesso single-user e quesito praticidade zero.

Em ambientes web, o ideal é sempre o A1 porque quem faz toda a assinatura e manuseio do certificado é o servidor. Se configura apenas uma vez (importar o certificado e colocar a senha) e você tem um ambiente multi-usuário, local ou remoto, seguro e sem necessitar de soluções híbridas (leia-se, gambiarras) para certificado A3 em web.

Abraço


Obrigado pela resposta, entendo que os certificados A3 vão contra os princípios da web, mas estou pesquisando justamente para entender sua "aplicabilidade". Algumas empresas fornecem o acesso aos certificados via Extensão de Browser e uma aplicação instalada na máquina do usuário, fiquei interessado em descobrir como isso é feito de maneira transparente e prática.


Simples:

- Existe um aplicativo Swing (desktop) rodando em segundo plano (ouvindo) na máquina do cliente, que está conectado em um gerenciador rodando no servidor. Esse aplicativo Swing é que faz o acesso ao certificado.
- Quando o usuário executa a ação para assinar um documento, o servidor monta o XML/Documento a ser assinado (regras de negócio devem ficar lá, e não no aplicativo desktop), manda ele remotamente para esse aplicativo Swing que faz o processamento, acessa o certificado A3 e solicita o token para o usuário.
- O aplicativo Swing assina, encripta e manda o arquivo de volta ao servidor, que armazena e efetua o envio do mesmo. A parte de encriptar é opcional, mas eu faria.

Sobre extensão de browser, funciona e te desejo boa sorte. Os browsers estão sempre mudando, extensões precisam de muito trabalho, dependem da API do browser para acessar certificados e você precisa alterar/modificar sua extensão sempre que a desenvolvedora do browser alterar seus requisitos.

O aplicativo remoto não necessita desse nível de manutenção, pode até demorar mais para ser desenvolvido mas é uma solução sua, de fácil manutenção e adaptabilidade para o seu negócio.

Esta mensagem foi editada 1 vez. Última atualização foi em 25/03/2019 10:43:16


If you're here, who's running hell?
auuug

JavaC Membro

Membro desde: 24/03/2019 15:25:02
Mensagens: 4
Offline

GGarcia wrote:
Simples:

- Existe um aplicativo Swing (desktop) rodando em segundo plano (ouvindo) na máquina do cliente, que está conectado em um gerenciador rodando no servidor. Esse aplicativo Swing é que faz o acesso ao certificado.
- Quando o usuário executa a ação para assinar um documento, o servidor monta o XML/Documento a ser assinado (regras de negócio devem ficar lá, e não no aplicativo desktop), manda ele remotamente para esse aplicativo Swing que faz o processamento, acessa o certificado A3 e solicita o token para o usuário.
- O aplicativo Swing assina, encripta e manda o arquivo de volta ao servidor, que armazena e efetua o envio do mesmo. A parte de encriptar é opcional, mas eu faria.

Sobre extensão de browser, funciona e te desejo boa sorte. Os browsers estão sempre mudando, extensões precisam de muito trabalho, dependem da API do browser para acessar certificados e você precisa alterar/modificar sua extensão sempre que a desenvolvedora do browser alterar seus requisitos.

O aplicativo remoto não necessita desse nível de manutenção, pode até demorar mais para ser desenvolvido mas é uma solução sua, de fácil manutenção e adaptabilidade para o seu negócio.


Obrigado pela resposta GGarcia, me ajudou muito com minha pesquisa/trabalho, agradeço pelo seu tempo e o do samuk. Vou fechar o tópico, vocês já sanaram algumas das minhas duvidas e me encaminharam para as respostas que procuro.
externocte

JavaC Membro

Membro desde: 29/09/2016 14:22:43
Mensagens: 23
Offline

Bom dia colegas,

Vou relatar meu uso atual com A3 na web...

Utilizo um banco de dados na Amazon, com uma camada de segurança em um owner apenas para a consulta do xml pronto para envio, o cliente usa aplicação em web browser e quando transmite a nota ele baixa um arquivo jnlp (java web start e jsp) com identificador único, basicamente eu tenho um jar no meu servidor Tomcat, ele gera um jnlp no servidor e baixa um na máquina do cliente, ambos com um identificado único, e esse jnlp é executado na maquina do cliente como se estivesse executando o jar que está no tomcat, hoje meu aplicativo não está assinado com um certificado code signing, que é o que falta para deixar a aplicação 100% lisa preciso adquirir e assinar os aplicativos com ele, complicado são os preços (1 ano R$ 590,00 /2 anos R$ 1.121,00 - 5% / 3 anos R$ 1.593,00 - 10%) https://www.comodobr.com/produtos/certificado_codesigning.php
Continuando, o jnlp consulta xml no banco, assina xml transmite, realiza a consulta, e salva na tabela intermediaria, após execução, automaticamente o jnlp é excluído na máquina do cliente.

Hoje por não estar com a aplicação assinada com code signing ao executar o aplicativo aparece duas mensagens, uma de confirmação de execução, e uma aviso de segurança, mostrando que foi assinado por um certificado tecnicamente não válido posso assim dizer, que foi gerado por mim pelo java, aqueles padrão. Se tivesse assinado, em determinados navegadores é possível deixar a opção para baixar e executar automaticamente, assim ele clicaria em transmitir e já executaria sem informar nenhuma mensagem para o cliente diminuindo até tempo de execução e resposta, obviamente.

Não atendemos apenas o modelo 65 a NFCe para o A3, por conta de agilidade e praticidade que precisa ser rápida, todos os outros documentos NFe, CTe, MDFe, CTeOS e NFs utilizo com A3, uso desde o maio de 2017 essa aplicação.

Bem essa é minha experiencia que tenho hoje com A3 Web..

Fico a disposição para dúvidas..
rlira

JavaC Membro

Membro desde: 07/01/2015 15:45:55
Mensagens: 105
Localização: Olinda - PE
Offline

Olá boa tarde,

Prezado só um comentário, realmente o valor para o certificado da comodo é complicado, para quem é pequeno, quem esta começando com poucos clientes..., ninguém começa com uma carteira de clientes cheia né? , mais precisamos dar qualidade aos nossos produtos.
Com com os applet´s fora ficou complicado para aplicações web, outro exemplo é para impressão direta.

Robson Lira
Skype: robson.lira
 
Índice dos Fóruns » NF-e / NFS-e / CT-e / CF-e / Certificados Digitais
Ir para:   
Powered by JForum 2.1.9 © JForum Team