Ir para conteúdo
  • Cadastre-se

dev botao

Ler Certificado Através Do Arquivo .pfx


Ver Solução Respondido por Thiago HSS,
  • Este tópico foi criado há 3241 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

 Utilizo delphi XE2 c/ componentes da ACBr. Como minha aplicação ficará no servidor, não é possível passar o certificado do pc do cliente, p/ o método do ACBrNFe "GetCertificado". Então gostaria de saber se é possível passar o caminho físico da pasta onde está o arquivo do certificado p/ que o ACBrNFe leia esse arquivo, substituindo o método "GetCertificado" (método pega o certifica que foi selecionado na máquina do cliente) ?

 

  Se for possível, como seria a implementação disso ?

 

  obrigado..

Postado (editado)

Mas o componente OpenSSL não é apenas p/ Kylix ?? Estou desenvolvendo p/ windows...

 

  Tentei instalar o OpenSSL e deu erro a instalação pelo XE2 e ACBrInstall...

Editado por andreyrf
Postado

Juliomar, consegui instalar pelo ACBrInstall, mas p/ versão Win32, mas meu PC é Win64.  Se tento compilar o pacote "ACBrOpenSSL.dpk" pelo XE2, dá o erro: Run time error !

 

 

  Mas agora achei um método do AcbrNfe p/ ler o arquivo .pfx do certificado, mas quando rodo ele num servidor, ele não acha o caminho físico do arquivo na pasta onde coloquei o certificado. O Acbr retorna: "O sistema não pode encontrar o caminho especificado".

 

Método:

Nfe.Configuracoes.Certificados.GetCertificado.Load(caminho_arq,senha,CAPICOM_KEY_STORAGE_EXPORTABLE,CAPICOM_LOCAL_MACHINE_KEY);

 

  Agora não sei como resolver essa questão, não sei é algum parâmetro diferente que tem que passar no método ou se é algum bloqueio do servidor..

  • Moderadores
Postado

Conforme posts é tópicos já existente vou pedir, por acaso o seu delphi está instalado na pastas program files ou program files(x86)?

Bom os componentes não se instala para 64 somente compila!

 

também ainda não entendeu o que passamos em usar com o openssl para somente informar o certificado!

 

se você abrir a pasta de exemplos tem um para a nf-e que contempla tanto uso com capcom quando openssl faça o dever de casa e use o exemplo pra tirar essas dúvidas

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 8 meses depois ...
  • Solution
Postado

Boa tarde, amigos.

Não sei se é o caso do colega, posso está falando asneiras, mas comigo dá a mensagem "Certificado Digital não encontrado", quando eu atribuo o caminho do ".pfx" e informo a senha e o número de série.

Para que o componente ACBr faça a leitura do seu certificado apenas pelo diretório onde ele se encontra sem a necessidade de está instalado, além de informar o caminho corretamente, você precisa informar apenas a senha do certificado, não informe o número de série, pois ao informar o número de série, as condições no condigo fonte irá procurar esse certificado instalado na máquina, por isso ele retorna que não foi encontrado!

 

Se a sua necessidade é ler um PFX de um diretório e usálo, então essa é a forma que eu utilizo e funciona.

Tente assim:

      ACBrNFe1.Configuracoes.Certificados.ArquivoPFX   := caminho;
      ACBrNFe1.Configuracoes.Certificados.Senha           := senha;

      ACBrNFe1.SSL.CarregarCertificado;

      if(ACBrNFe1.SSL.CertificadoLido)then
         ShowMessage(ACBrNFe1.SSL.CertNumeroSerie);

  • Curtir 3
  • Obrigado 1
  • Este tópico foi criado há 3241 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.