Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

error:0308010C:digital envelope routines::unsupported

885 views
Skip to first unread message

Alef Silva

unread,
Apr 4, 2024, 11:57:08 PM4/4/24
to NFePHP
Estou com um problema ao validar um cerificado digital usando openssl_pkcs12_read

error:0308010C:digital envelope routines::unsupported

Eu já verifiquei algumas discussões relacionadas a esse problema aqui no grupo, porém nenhuma delas atendeu o meu problema, pois eu ainda continuo sem sucesso

Eu já notei que esse erro está relacionado a forma que a função openssl_pkcs12_read realiza a leitura na versão do OpenSSL versão 3 retornando falha

Estou usando Ubuntu no WSL2 e trabalhando em um projeto no Laravel 10 com Sail, PHP 8.3.4 e a versão do OpenSSL está na 3

Já realizei aquelas alterações no openssl.cnf conforme abaixo:

openssl_conf = openssl_init

[
openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1

Porém ainda estou tendo o mesmo problema, não resolveu nada Alguém pode me ajudar?





Jaime Hansen

unread,
Apr 5, 2024, 7:06:41 AM4/5/24
to NFePHP
Pois é, estou tendo esse mesmo problema, já realizei essas configurações e ainda consiste o erro  0308010C.

Porém, quando estou utilizando o WSL funciona normalmente.

Jair Carioca 22

unread,
Apr 8, 2024, 7:39:20 AM4/8/24
to nfe...@googlegroups.com
Alef,

Tenta importar o certificado para o Windows e exportar novamente.
Tem uns certificados novos que precisam passar por este processo para a rotina de leitura aceitar.
Depois vou localizar minhas anotações pra ver se tem algo mais de configuração no OpenSSL.


Sds
Jair


--
--
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 on the web visit https://groups.google.com/d/msgid/nfephp/449dcb06-bcfd-4744-b3ff-f47c6060680dn%40googlegroups.com.

Alef Silva

unread,
Apr 9, 2024, 11:05:17 AM4/9/24
to NFePHP
Eu consegui resolver esse problema e vou deixar registrado abaixo a solução

O único detalhe que faltou explicar é que se alguém estiver trabalhando com Laravel e utilizando o Sail para criar ambientes Docker, essa alteração deverá ser feita dentro do container Docker, e não fora dele. Portanto vou deixar um passo a passo de como deve ser feito a configuração:

1 - O Sail precisa estar em execução e rodando os containers
2 - Rodar no terminal o comando "sail ps" ou "docker ps" pois ambos mostram o mesmo resultado
3 - Idenficar o nome do container do Laravel, geralmente é "nome_do_projeto_laravel.test-1"
4 - Rodar o comando "docker exec -it nome_do_projeto_laravel.test-1 bash"
5 - Rodar o comando "openssl version -d" para ver onde está o diretório do OpenSSL e a saída provavelmente será "/usr/lib/ssl"
6 - Navegar até o diretório "cd /usr/lib/ssl" rodar o comando "nano openssl.cnf" e adicionar as linhas abaixo:


openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1


7 - Ctrl + O para salvar o arquivo e depois Ctrl + X para sair do editor Nano

8 - Digitar "exit" e enter para sair do terminal do container

9 - Rodar o comando "sail restart" para fazer efeito as alterações

Após isso eu acredito que funcionará pra todos se for feito da maneira que eu expliquei acima, pois o modo legacy vai estar ativado dentro do container docker e a função openssl_pkcs12_read do PHP vai conseguir ler corretamente o certificado digital e deiar de aparecer o erro error:0308010C:digital envelope routines::unsupported

Obrigado a todos os envolvidos nessa discussão ;)

Robson Santos

unread,
Sep 30, 2024, 7:05:13 PM9/30/24
to NFePHP

Obrigado segui os passos deu certinho

Itamar Chaves

unread,
Oct 1, 2024, 11:43:53 AM10/1/24
to nfe...@googlegroups.com
Já resolveu algumas vezes aqui 

adile...@gmail.com

unread,
Nov 21, 2024, 7:19:22 AM11/21/24
to NFePHP
Estou com o mesmo problema porém Windows64bits/Laravel/Wamp e PHP8.1 64bits
fiz todos estes procedimentos e mesmo assim o erro permanece, lembrando que se eu mudo para o php 32bits le normlamente o certificado, porém existe um outro problema aqui por isto é obrigatório que seja em 64bits.
Alguém com windows que conseguiu resolver?

Roberto Machado

unread,
Nov 21, 2024, 7:43:14 AM11/21/24
to nfe...@googlegroups.com
Senhores;

Este é um problema relacionado ao ENVELOPE do certificado digital, para corrigir existem algumas formas, uma delas é importar o certificado no chrome e exporta-lo novamente, isso normalmente corrige o problema do envelope não suportado.

Roberto

adile...@gmail.com

unread,
Nov 22, 2024, 7:43:56 AM11/22/24
to NFePHP
Obrigado pelas respostas, exportei também porém aí aumentaram os erros, segui os passos novamente com um novo arquivo openssl.cnf:


openssl_conf = openssl_init

[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
legacy = legacy_sect

[default_sect]
activate = 1

[legacy_sect]
activate = 1


porém nada mudou, o erro  error:0308010C:digital envelope routines::unsupported   permanece, porém em meu linux roda este sistema perfeitamente, somente no windows quando instalei a versão 64bits que não funciona

Roberto Machado

unread,
Nov 22, 2024, 8:10:12 AM11/22/24
to nfe...@googlegroups.com
Com o ruindows não posso te ajudar pois já faz mais de 20 anos que eu não uso esse sistema operacional.
Desenvolvo apenas no UBUNTU e no MacOS.

Roberto

adile...@gmail.com

unread,
Nov 23, 2024, 8:45:39 PM11/23/24
to NFePHP
pois é, infelizmente, ainda preciso, por conta de uma segunda profissão que exige usar Windows por conta dos softwares só existirem para ele

Gustavo Ota

unread,
Nov 26, 2024, 8:34:43 AM11/26/24
to NFePHP
Fala pessoal, beleza! 
Roberto, parabéns pelo projeto.
Vamo lá:
Ambiente Windows 11 64bits, PHP 8.3 e OPENSSL 3.3
Precisa verificar certinho no phpinfo o caminho para o arquivo openssl.cnf e editar as configurações legacy acima citada.
Verifique as variaveis de ambiente:
OPENSSL_CONF D:/caminho/do/arquivo/openssl.cnf
OPENSSL_MODULES D:/caminho/da/pasta/que/contem/legacy.ddl/

Fazendo isso roda certinho, valeu!

Um off topic, Roberto, na versão 8.4 do PHP tive uns erros de nullable, precisa refatorar o codigo será?
https://www.php.net/manual/en/migration71.new-features.php
https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated

Breno Oliveira

unread,
Jan 23, 2025, 5:00:58 PMJan 23
to NFePHP
Olá pessoal,

esse problema começou a acontecer comigo este mês, sendo que não troquei o certificado, e obviamente ele ainda não venceu. Também não tinha feito nenhuma atualização no meu sistema.. Estou tentando importar e exportar no chrome, mas não estou achando exatamente como fazer no mac.
Pergunta geral: vocês também utilizam o arquivo .pfx e use a senha apenas? 
Lêem ele com o Tools? $tools = new NFePHP\NFe\Tools($configJson, Certificate::readPfx($certificadoDigital, $certPassword));

Não sei o que faço, meu cliente não está conseguindo emitir nota fiscal..

Breno Oliveira

unread,
Jan 23, 2025, 5:37:47 PMJan 23
to NFePHP
Fui ver e o meu certificado SSL do site estava vencido. aí instalei novamente. Agora está válido, mas o erro continua..

Juliana Apolo

unread,
Jan 23, 2025, 5:41:02 PMJan 23
to nfe...@googlegroups.com
É problema no openssl. Tive o mesmo problema por aqui.

Usa os comandos abaixo pra editar o openssl.cnf

sed -i '/^default = default_sect/a legacy = legacy_sect' /etc/ssl/openssl.cnf
sed -i '/^\[default_sect\]/a activate = 1' /etc/ssl/openssl.cnf
printf "[legacy_sect]\nactivate = 1" >> /etc/ssl/openssl.cnf

--
--
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.


--
Atenciosamente,
Juliana Apolo
(11) 95315-1881

Breno Oliveira

unread,
Jan 23, 2025, 5:49:25 PMJan 23
to NFePHP
Meu servido é hospedado na hostinger, e eu não tenho acesso a este arquivo..

Fernando Nemec

unread,
Jan 23, 2025, 5:57:00 PMJan 23
to nfe...@googlegroups.com
Não é exatamente um problema. As curvas SECT obsoletas (legacy) são... obsoletas em um contexto de segurança moderno. Claro que depende do contexto dessa instalação mas, se tratando de uma máquina com acesso público, eu somente ativaria em último caso.

Breno Oliveira

unread,
Jan 23, 2025, 6:28:31 PMJan 23
to NFePHP
Seguindo instruções do ChatGPT consegui descobrir que o certificado utiliza o algorítmo RC2-40-CBC e novas versões do OpenSSL não suportam esse algorítmo. Por isso usando o legado é possível "arrumar" isso. Como não tenho acesso à instalação do OpenSSL no meu servidor, acho que vou ter que pedir pro meu cliente gerar outro certificado...

Breno Oliveira

unread,
Jan 23, 2025, 6:37:49 PMJan 23
to NFePHP
ChatGPT é incrível. Segue comandos que utilizei para gerar outro certificado com algorítmo seguro aceito pela nova versão do OpenSSL:

openssl pkcs12 -legacy -info -in certificado.pfx -out certificado.pem -nodes

openssl pkcs12 -export \                                                                            

  -inkey certificado.pem \

  -in certificado.pem \

  -out novo_certificado.pfx \

  -certpbe AES-256-CBC \

  -keypbe AES-256-CBC \

  -passout pass:sua_senha


Reply all
Reply to author
Forward
0 new messages