Esto era porque el formato de la clave privada del certificado (.PEM) tenia el encabezado
-----BEGIN ENCRYPTED PRIVATE KEY-----
Y al parecer curl no entendía este encabezado y por eso siempre obtenía el error:
curl: (58) Unable to load client cert -8018.
Bueno ademas si no das correctamente la ubicación del certificado puede darte el error:
curl: (35) NSS: client certificate not found: certificado.pem
No basta cambiarle el encabezado directo a mano, hay que generar correctamente la llave primaria, para eso ejecutamos:
openssl rsa -in certificado.pem -out private.key
Enter pass phrase for localhost.wget.pem:
Luego pide la frase mágica, que debemos introducir y se genera el fichero private.key con el encabezado:
-----BEGIN RSA PRIVATE KEY-----
.
.
-----END RSA PRIVATE KEY-----
Esta llave la remplazamos en el fichero certificado.pem y ejecutamos:
curl -k --cert ./certificado.curl.pem https://host:1000/webService?wsdl
Ahora ya no pide la "palabra magica" y obtiene el descriptor del servicio. tomar en cuenta que certificado.curl.pem es el fichero de certificado PEM y "./" es para que lo obtenga de la ubicación actual.
No hay comentarios:
Publicar un comentario