SUCESSO!
Consegui recuperar a chave privada. Mas não foi fácil. Veja o que você precisa fazer:
- Faça sure não reiniciar o servidor ou o Apache. O jogo acabou nesse ponto. Isso também significa garantir que nenhum serviço de monitoramento reinicie o Apache.
- Agarre este arquivo - código-fonte para uma ferramenta chamada passe-partout .
-
Extraia o código-fonte e ajuste a linha 9 de
Makefile.main
para ler:$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
(Observe que
$(OBJS)
e$(LDFLAGS)
estão invertidos na ordem.) - Executar
./build.sh
. -
Agarre o PID do Apache usando:
service apache2 status
-
Execute o comando
passe-partout
como root:sudo passe-partout [PID]
... onde
[PID]
é o valor que você recuperou na etapa 5. -
Se o programa for bem-sucedido, seu diretório atual terá um monte de chaves extras:
you@server:~# ls id_rsa-0.key id_rsa-1.key id_rsa-2.key
Se tudo correu bem (e espero que tenha acontecido), uma dessas chaves é a que você precisa. No entanto, se você tiver mais de um certificado / keyfile em uso, será necessário descobrir qual deles é. Veja como você faz isso:
Primeiro, pegue uma cópia do certificado que corresponda à chave assinada. Supondo que o arquivo tenha o nome server.crt
, execute o seguinte comando:
openssl x509 -noout -modulus -in server.crt | openssl md5
Isto produzirá um valor que você precisará combinar com cada uma das chaves. Para cada chave, execute o seguinte comando:
openssl rsa -noout -modulus -in id_rsa-0.key | openssl md5
Se uma delas coincidir, você encontrou a chave.
Crédito: esta artigo me indicou passe-partout.