Erro de comunicação via soap, SSL certificate OpenSSL verify result: unable to get local issuer certificate

97 views
Skip to first unread message

Alexandre Correia

unread,
Nov 21, 2025, 10:22:41 AM (9 days ago) Nov 21
to NFePHP
Utilizo o NFePHP a mais ou menos 5 anos, mas hoje todos meu clientes estao com esse problema, os certificados estao ok, nada foi feito recentemente que alterasse o fluxo dos processos, alguem sabe oque poderia ser esse problema e como resolver?

$soap = new SoapCurl();
            $certificate = Certificate::readPfx($this->contentpfx, $this->passwordpfx);
            $soap->loadCertificate($certificate);
            $soap->timeout(30);
            $soap->protocol($soap::SSL_TLSV1_2);
            $this->tools = new Tools(json_encode($this->configJson), $certificate);

Cristiano Rodrigues do Amaral

unread,
Nov 21, 2025, 11:11:40 AM (9 days ago) Nov 21
to nfe...@googlegroups.com
Bom dia. Tudo bem!

Eu já passei com algo parecido, com um sistema feito para baixar os XMLs, de CT-e,  e NF-e, de um cliente, feito na linguagem GO...
E aí descobri que o problema não estava no certificado digital, e nem no programa em GO, mas que no site do Governo, de uma certificadora, para certificar o seu certificado, não estava aceitando a versão que estava, nem tão pouco a última, mas sim a penúltima versão funcionava...
Também descobri depois do nada de parar do nada...
Uma vez, atualizei tirando essa certificadora, funcionou, depois parou novamente...
E aí descobri que têm sim, que colocar a certificado, e somente a penúltima funcionava, das mais de 150 certificadoras, e atualizações, e somente uma funcionava...
Ninguém documenta essa negócio direito. Enfim, funciona, funcionou, e está funcionando até agora e nunca mais parou...

E fiz uma outra ação com certificado também no Ambiente windows que ficava o certificado, eu instalei novamente, de 02 formas...
Por precaução, por que pediram também..
01 - Instalar novamente no servidor na máquina, onde está a sua aplicação PHP (igualmente a minha em GO), e a segunda vez na instalação...
02 - Escolhe agora uma nova instalação na mesma máquina, no mesmo servidor, o mesmo certificado, mudando ali na segunda ou terceira tela da instalação, colocando em repositório colocando, e escolhendo a pasta de Certificados em Raíz/Pasta confiáveis...

Depois disso coloque ai no seu programa PHP, essa questão de ter a certificadora para validar o seu certificado... E irá funcionar...

Site da Autoridade Certificadora Raiz (AC-Raiz):
https://www.gov.br/iti/pt-br/assuntos/icp-brasil

Baixado uma nova versão do certificado da certificadora - https://www.gov.br/iti/pt-br/assuntos/repositorio/repositorio-ac-raiz

Somente esse que funcionou:
ICP-Brasilv12.pem", "Arquivo PEM com CA/bundle ICP-Brasil")

Não colocar se não trava.. Isso em GO:
t := &http.Transport{
TLSClientConfig: &tls.Config{
Renegotiation: tls.RenegotiateOnceAsClient,
Certificates:  []tls.Certificate{cert},
RootCAs:       caCertPool,
MaxVersion:    tls.VersionTLS12,
//InsecureSkipVerify: true, // Ignora verificação de certificado Não utilizar.. Primeira vez que eu alterei... A segunda eu coloquei para utilizar a certificadora, e essa linha eu comente.
},
}

É isso.

Att.,
Cristiano Amaral

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositórios: https://github.com/nfephp-org
---
You received this message because you are subscribed to the Google Groups "NFePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nfephp+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/nfephp/4dbf27a0-b82f-470e-a1cf-f17955af60a7n%40googlegroups.com.


--
Cristiano Amaral
+55 047 99712-1198 ( Claro/Whatsapp )
skype: cristiano.tecnologia

Cristiano Rodrigues do Amaral

unread,
Nov 21, 2025, 11:15:20 AM (9 days ago) Nov 21
to nfe...@googlegroups.com
Site com a lista onde eu achei várias, mas somente a versão 12 funcionou, conforme eu falei no e-mail anterior.

Lista de Certificados Revogados da AC-Raiz v12 - Emitida em 23/09/2025 - Próxima atualização em 22/12/2025

https://www.gov.br/iti/pt-br/assuntos/repositorio/repositorio-ac-raiz

Att.,

Alexandre Correia

unread,
Nov 21, 2025, 7:32:15 PM (9 days ago) Nov 21
to NFePHP
Consegui resolver o problema, então para ajudar caso tenham o mesmo problema vou relatar meu processo.

Meu sistema utiliza php 7.1 e ao que tudo indica esse foi o problema em si, de acordo com minhas pesquisas a Sefaz fez uma atualização de certificados entre dia 20-21/11, e aparentemente as cadeias/assinaturas estão mais modernas, e o php7.1 não consegue fazer o processo de envio de forma nativa mais.
O Envio da nota era feito, a nota era aprovada ou denegada, porem nao recebia resposta da sefaz, apenas os erros:

Erro de comunicação via soap, SSL certificate OpenSSL verify result: unable to get local issuer certificate (20)
Ou
Erro de comunicação via soap,  SSL certificate OpenSSL verify result: self signed certificate in certificate chain (19)


Como resolvi:

no meu servidor baixei o cacert.pem mais atualizado
adicionei ele ao php.ini:

curl.cainfo = "/home/sistema/app/Lib/cacert.pem"
openssl.cafile = "/home/sistema/app/Lib/cacert.pem"

e precisei forçar a leitura deles no Send de SoapCurl.php.

e pronto, resolveu meu problema, pode ser temporário a solução, mas por hora esta OK, 
O ideal é atualizar o php e etc, porem hoje nao é possivel.
Reply all
Reply to author
Forward
0 new messages