Erro Key is Invalid

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. crt.sh | example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is: copar.com.br

I ran this command: sudo certbot certonly --manual -d *.copar.com.br -d copar.com.br --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

It produced this output: Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/copar.com.br/fullchain.pem
Key is saved at: /etc/letsencrypt/live/copar.com.br/privkey.pem
This certificate expires on 2024-07-27.
These files will be updated when the certificate renews.

My web server is (include version): Apache 2.2.31

The operating system my web server runs on is (include version): Não sei

My hosting provider, if applicable, is: he.com.br

I can login to a root shell on my machine (yes or no, or I don't know): Não

I'm using a control panel to manage my site (no, or provide the name and version of the control panel): DirectAdmin 1.643

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot): Não sei

Saudações,

Não sou especialista em TI.

copar.com.br
Apache 2.2.31
DirectAdmin 1.643
Shell Access (ssh) OFF
Registrador: Registro.br (tenho acesso administrativo e técnico)
Hospedagem: https://www.he.com.br (o administrador sumiu. Não responde telefone nem e-mails. Não atualiza o sistema)

O domínio está hospedado na he.com.br há muitos anos. Eles usavam a renovação automática da Let´s Encrypt e tudo corria bem.
Em 29/12/2022 recebi um email avisando:

000003898 Error during automated certificate renewal for copar.com.br 12/29/2022

Na época não tive tempo de tratar disso e só em 06/06/2023 substitui o certificado expirado por um gratuito da ZeroSSL (90 dias) que foi renovado (manualmente) em 22/08/2023 (mais 90 dias) e renovado novamente em 18/11/2023. Na terceira renovação a ZeroSSL disse que não haveria mais certificados gratuitos e que eu deveria pagar pela renovação.
Então renovei por um certificado gratuito da SSL Corporation (90 dias 14/02/2024 - 14/05/2024)
Neste domingo, 28/04/2024, tentei a emissão do certificado da Let´s Encrypt e, aparentemente, tive sucesso. Porém, na hora de instalar o certificado o sistema não aceita a chave e da a seguinte msg:

"Cannot Execute Your Request
Details
Key is Invalid"

O certificado compartilhado do servidor é auto assinado. Não serve.
Se eu tentar configurar o sistema para utilizar a renovação automática da Let´s Encrypt da o seguinte erro:

"Cannot Execute Your Request
Details
/usr/local/bin/lego is required, exiting..."

Não tenho acesso ssh.

A máquina onde gerei o certificado Let´s Encrypt (não é o servidor):

Sistema operacional: Manjaro Linux
Versão do KDE Plasma: 5.27.11
Versão do KDE Frameworks: 5.115.0
Versão da Qt: 5.15.12
Versão do kernel: 6.1.85-1-MANJARO (64-bit)
Plataforma de gráficos: X11

O comando para gerar o certificado (copiei na Internet):

sudo certbot certonly --manual -d *.copar.com.br -d copar.com.br --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory

A resposta:

Use of --no-bootstrap is deprecated.
Use of --manual-public-ip-logging-ok is deprecated.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
...
Please deploy a DNS TXT record under the name:

_acme-challenge.copar.com.br.

with the following value:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Press Enter to Continue


Please deploy a DNS TXT record under the name:

_acme-challenge.copar.com.br.

with the following value:

yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
...
Press Enter to Continue

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/copar.com.br/fullchain.pem
Key is saved at: /etc/letsencrypt/live/copar.com.br/privkey.pem
This certificate expires on 2024-07-27.
These files will be updated when the certificate renews.

Para fazer a instalação do certificado uso a interface gráfica do DirectAdmin e o processo consiste em copiar (em formato txt) o conteúdo do certificado e da chave e colar esse texto num campo apropriado do DirectAdmin seguindo o padrão:

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

Não mudei o certificado raiz (fornecido por SSL Corporation)

Desde já, agradeço o interesse.
Obrigado!

Hi @norberto,

You do not need to hide those values as anyone can see them while they exist in the DNS
As shown here https://unboundtest.com/m/TXT/_acme-challenge.copar.com.br/7QMT5AIU

1 Like

@norberto,

Here is a list of issued certificates crt.sh | copar.com.br, the latest being 2024-04-28.
Why won't that certificate work for you?
Do you still have its Private Key?

Presently being served is https://decoder.link/sslchecker/copar.com.br/443

2 Likes

Please share more information about the KEY (not the private secret information).
Is it ECDSA or RSA?
How many bits?

2 Likes

Here SSL Server Test: www.copar.com.br (Powered by Qualys SSL Labs) you can see the certificate chain has issues for the currently being served certificate.

1 Like

Olá @norberto,

Essa parte deve ser a dificuldade principal. Pode dar um pouco mais contexto? Qual foi o software que deu essa mensagem de erro? O que você fazia ou tentava fazer naquele momento?

Isso é dentro do painel de controle?

Se a gente não conseguir orientá-lo, tem algum tipo de suporte técnico do provedor? O painel de controle foi instalado por eles?

Atualizado: Parece que já disse acima que foi no painel DirectAdmin. Pode fazer uma captura da tela nesse passo? (mais sem o conteúdo da chave privada!)

2 Likes

Por isso
Por favor, compartilhe mais informações sobre a CHAVE (não as informações secretas privadas).
É ECDSA ou RSA?
Quantos bits?

1 Like

@Bruce5051 Um certificado emitido no domingo para esses nomes deve ser esse:

que tem uma chave RSA de 2048 bits. Ou seja, não acho que daria problemas de compatibilidade com a chave em si.

3 Likes

Tenho tendência a concordar; Só gosto de mais detalhes para oferecer conselhos mais seguros. Mas vou deixar de lado esse assunto agora.

Obrigado @schoen :slight_smile:

1 Like

OK! Noted.

2 Likes

[quote="Bruce5051, post:3, topic:217492, full:true"]
@norberto,

*Here is a list of issued certificates crt.sh | copar.com.br, the latest being 2024-04-28. *
Why won't that certificate work for you?
Do you still have its Private Key?

Presently being served is https://decoder.link/sslchecker/copar.com.br/443
[/quote]

The active certificate is from SSL Corporation and expires on 5/14, so I am arranging another certificate to replace it.

Yes I have the private key.

1 Like

[quote="Bruce5051, post:4, topic:217492, full:true"]
[quote="norberto, post:1, topic:217492"]
"Cannot Execute Your Request
Details
Key is Invalid"
[/quote]

Please share more information about the KEY (not the private secret information).
Is it ECDSA or RSA?
How many bits?
[/quote]

The Private Key is ECDSA but I don't know how to check its size.

1 Like

@norberto it is probably fine.

Does something require a RSA certificate?
And thus complaining about the ECDSA key.

1 Like

[quote="schoen, post:6, topic:217492, full:true"]
[quote="norberto, post:1, topic:217492"]
Neste domingo, 28/04/2024, tentei a emissão do certificado da Let´s Encrypt e, aparentemente, tive sucesso. Porém, na hora de instalar o certificado o sistema não aceita a chave e da a seguinte msg:

"Cannot Execute Your Request
Details
Key is Invalid"
[/quote]

Olá @norberto,

Essa parte deve ser a dificuldade principal. Pode dar um pouco mais contexto? Qual foi o software que deu essa mensagem de erro? O que você fazia ou tentava fazer naquele momento?

[quote="norberto, post:1, topic:217492"]
Se eu tentar configurar o sistema para utilizar a renovação automática da Let´s Encrypt da o seguinte erro:

"Cannot Execute Your Request
Details
/usr/local/bin/lego is required, exiting..."
[/quote]

Isso é dentro do painel de controle?

Se a gente não conseguir orientá-lo, tem algum tipo de suporte técnico do provedor? O painel de controle foi instalado por eles?

Atualizado: Parece que já disse acima que foi no painel DirectAdmin. Pode fazer uma captura da tela nesse passo? (mais sem o conteúdo da chave privada!)
[/quote]

Olá @schoen,

No DirectAdmin há três caminhos para instalar um certificado SSL:
Um é usar o certificado compartilhado do servidor, porém, esse certificado é auto assinado, então não serve.

Outro caminho é ativar o certificado Let´s Encrypt (também do servido) (com renovação automática), é ai que da o erro:

"Cannot Execute Your Request
Details
/usr/local/bin/lego is required, exiting.."

O terceiro caminho é colar (manualmente) um certificado comprado. Os três certificados da ZeroSSL e o da SSL Corp foram instalados dessa forma.
É nesse caminho que estou tentando instalar o certificado do Let´s Encrypt (de 28/04/2024) e que aponta o erro:

"Cannot Execute Your Request
Details
Key is Invalid"

Não há suporte da empresa de hospedagem.

[quote="schoen, post:6, topic:217492, full:true"]
[quote="norberto, post:1, topic:217492"]

Atualizado: Parece que já disse acima que foi no painel DirectAdmin. Pode fazer uma captura da tela nesse passo? (mais sem o conteúdo da chave privada!)
[/quote]


Interessante, obrigado.

Quer dizer que sua chave privada foi de apenas três linhas de texto? (Outra vez, por favor não a cole aqui no fórum.)

A chave privada costuma ser mais longo que isso, se fosse uma chave privada RSA. (Uma chave privada EC pode ser curto assim.)

Outra coisa esquisita: na saída do Certbot você mostrou conforme segue

-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----

mas na captura da tela diz "BEGIN PRIVATE KEY" e não "BEGIN RSA PRIVATE KEY".

A forma "BEGIN PRIVATE KEY" é mais normal para mim mas sei que existem softwares que produzem as duas formas.

Então... você tem certeza de que a chave e o certificado que você colou no painel fossem os mesmos produzidos pelo Certbot? Você os copiou diretamente do servidor?

Pode executar certbot certificates no servidor para confirmar? (A saída contém um resumo de todo certificado no sistema, mas seu conteúdo não é privada e pode ser compartilhado no fórum.)

1 Like

[quote="schoen, post:16, topic:217492, full:true"]
Interessante, obrigado.

Quer dizer que sua chave privada foi de apenas três linhas de texto? (Outra vez, por favor não a cole aqui no fórum.)

A chave privada costuma ser mais longo que isso, se fosse uma chave privada RSA. (Uma chave privada EC pode ser curto assim.)

[/quote]

Eu não posso digitar comandos no servidor (só mesmo usando o Direct Admin), mas, digitei na minha máquina (onde obtive o certificado Lets Encrypt) os seguintes comandos:

sudo openssl rsa -check -in /etc/letsencrypt/live/copar.com.br/privkey.pem
[sudo] senha para norberto:
Not an RSA key

sudo openssl ec -check -in /etc/letsencrypt/live/copar.com.br/privkey.pem
read EC key
EC Key valid.
writing EC key
-----BEGIN EC PRIVATE KEY-----




-----END EC PRIVATE KEY-----

[quote="schoen, post:16, topic:217492, full:true"]

Outra coisa esquisita: na saída do Certbot você mostrou conforme segue


-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

mas na captura da tela diz "BEGIN PRIVATE KEY" e não "BEGIN RSA PRIVATE KEY".

A forma "BEGIN PRIVATE KEY" é mais normal para mim mas sei que existem softwares que produzem as duas formas.

Então... você tem certeza de que a chave e o certificado que você colou no painel fossem os mesmos produzidos pelo Certbot? Você os copiou diretamente do servidor?

[/quote]

-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

aparece nos certificados da ZeroSSL e da SSL Corp
No certificado da Lets Encrypt aparece

-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

como se vê na cptura.  

[quote="schoen, post:16, topic:217492, full:true"]

Pode executar certbot certificates no servidor para confirmar? (A saída contém um resumo de todo certificado no sistema, mas seu conteúdo não é privada e pode ser compartilhado no fórum.)
[/quote]

No servidor não posso. Na minha máquina:

sudo certbot certificates
[sudo] senha para norberto:
Saving debug log to /var/log/letsencrypt/letsencrypt.log


Found the following certs:
Certificate Name: copar.com.br
Serial Number: 4295e4aad7918646d8bfcab292e7b0c4846
Key Type: ECDSA
Domains: *.copar.com.br copar.com.br
Expiry Date: 2024-07-27 18:14:13+00:00 (VALID: 87 days)
Certificate Path: /etc/letsencrypt/live/copar.com.br/fullchain.pem
Private Key Path: /etc/letsencrypt/live/copar.com.br/privkey.pem


[quote="schoen, post:16, topic:217492, full:true"]

Então... você tem certeza de que a chave e o certificado que você colou no painel fossem os mesmos produzidos pelo Certbot? Você os copiou diretamente do servidor?

[/quote]

Para obter (em txt) o conteúdo dos arquivos fullchain.pem e privkey.pem usei, na minha máquina, os comandos:

sudo cat /etc/letsencrypt/live/copar.com.br/fullchain.pem

sudo cat /etc/letsencrypt/live/copar.com.br/privkey.pem