SUCESSO!
Consegui recuperar a chave privada. Mas não foi fácil. Aqui está o que você precisa fazer:
- Certifique- se de 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.
- Pegue 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)
(Note-se que a $(OBJS)
e $(LDFLAGS)
são invertidas de modo).
- Corra
./build.sh
.
Pegue o PID do Apache usando:
service apache2 status
Execute o passe-partout
comando como root:
sudo passe-partout [PID]
... onde [PID]
está o valor que você recuperou na etapa # 5.
Se o programa for bem-sucedido, seu diretório atual terá várias 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 / arquivo de chaves em uso, precisará descobrir qual é. Aqui está como você faz isso:
Primeiro, pegue uma cópia do certificado que corresponde à chave assinada. Supondo que o arquivo seja nomeado server.crt
, execute o seguinte comando:
openssl x509 -noout -modulus -in server.crt | openssl md5
Isso produzirá um valor que você precisará corresponder a cada uma das chaves. Para cada chave, execute o seguinte comando:
openssl rsa -noout -modulus -in id_rsa-0.key | openssl md5
Se um deles corresponder, você encontrou a chave.
Crédito: este artigo me indicou passe-partout.