¡ÉXITO!
Pude recuperar la clave privada. Pero no fue fácil. Esto es lo que debes hacer:
- Hacer seguro de que no reinicie el servidor o Apache. El juego terminó en ese punto. Eso también significa asegurarse de que ningún servicio de monitoreo reinicie Apache.
- Tome este archivo : código fuente de una herramienta llamada passe-partout .
Extraiga el código fuente y ajuste la línea 9 Makefile.main
para leer:
$(CC) $(CFLAGS) -o $@ $(OBJS) $(LDFLAGS)
(Tenga en cuenta que $(OBJS)
y $(LDFLAGS)
se invierten en orden).
- Ejecutar
./build.sh
.
Tome el PID de Apache usando:
service apache2 status
Ejecute el passe-partout
comando como root:
sudo passe-partout [PID]
... donde [PID]
está el valor que recuperó en el paso 5.
Si el programa tiene éxito, su directorio actual tendrá un montón de claves adicionales:
you@server:~# ls
id_rsa-0.key id_rsa-1.key id_rsa-2.key
Si todo salió bien (y con suerte lo hizo), una de esas claves es la que necesita. Sin embargo, si tenía más de un certificado / archivo de claves en uso, entonces necesita averiguar cuál es. Así es como lo haces:
Primero tome una copia del certificado que coincida con la clave firmada. Suponiendo que el archivo se llama server.crt
, ejecute el siguiente comando:
openssl x509 -noout -modulus -in server.crt | openssl md5
Esto generará un valor que deberá comparar con cada una de las claves. Para cada tecla, ejecute el siguiente comando:
openssl rsa -noout -modulus -in id_rsa-0.key | openssl md5
Si uno de ellos coincide, has encontrado la clave.
Crédito: este artículo me señaló a passe-partout.