Solución al error AH02577 Init SSLPassPhraseDialog builtin is not supported on Win32 key file .key que se produce en un servidor web Apache, en Windows, cuando activamos el acceso HTTPS y usamos un fichero de clave privada con contraseña.

Error Init SSLPassPhraseDialog builtin is not supported on Win32 key file

Cuando activamos el acceso HTTPS (TLS) a un servidor web con Apache en Windows y hemos usado un fichero de clave privada con palabra de paso (contraseña), obtendremos el siguiente error (consultable en el fichero error.log de Apache):

El error es debido a que no se le ha pasado la contraseña de la clave privada del certificado por ningún medio, por ello, al iniciar el servicio, se produce este error.

Solución al error Init SSLPassPhraseDialog builtin is not supported on Win32 key file

Para solucionar el error Init SSLPassPhraseDialog builtin is not supported on Win32 key file, en primer lugar, crearemos un ejecutable (.exe) que muestre por consola la palabra de paso (contraseña). Para ello, podremos usar cualquier lenguaje de programación. En este caso, usaremos Python, el programa será:

En el programa anterior, cambiaremos la_contraseña_del_fichero_clave_privada por la contraseña que hayamos introducido al generar el fichero de clave privada (como indicamos en este tutorial).

Guardaremos el código anterior Python en un fichero con el nombre passcert.py y generaremos el ejecutable, con el comando:

El comando anterior habrá generado el fichero ejecutable passcert.exe. Copiaremos este fichero:

Y lo pegaremos en alguna carpeta del servidor de Apache, por ejemplo en «conf»:

Hay que tener precaución con este fichero ejecutable, dado que devuelve en consola la contraseña de la clave privada. Por ello, lo colocaremos en una carpeta con permisos de acceso limitados.

Editaremos el fichero httpd-ssl.conf de Apache, que suele estar en la carpeta:

…\conf\extra

Comentaremos la línea:

Quedando:

Y añadiremos la línea:

Estableciendo la ruta y nombre del fichero ejecutable que genera la contraseña por consola, en este caso:

C:/xampp/apache/conf/passcert.exe

Guardaremos los cambios realizados en el fichero httpd-ssl.conf.

Reiniciaremos el servicio de Apache y este parámetro abrirá la aplicación passcert.exe que envía la contraseña a consola, solucionándose el error Init SSLPassPhraseDialog builtin is not supported on Win32 key file.