Consumir servicio web con SSL archivo .p12

Que tal
Estoy tratando de consumir un servicio con seguridad SSL utilizando un certificado autofirmado .p12 con el siguiente código:

private static SSLSocketFactory getFactory( File pKeyFile, String pKeyPassword ) throws NoSuchAlgorithmException, KeyStoreException, CertificateException, IOException, UnrecoverableKeyException, KeyManagementException {
KeyStore keyStore = KeyStore.getInstance("RSA");
InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pKeyPassword.toCharArray());
keyInput.close();

KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, pKeyPassword.toCharArray());
TrustManager[] trustManagers;
trustManagers = new TrustManager[]{new EasyX509TrustManager(keyStore)};

SSLContext context = SSLContext.getInstance("TLS");
context.init(keyManagerFactory.getKeyManagers(), null, new SecureRandom());
return context.getSocketFactory();
}

Sin embargo obtengo el siguiente error:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Agradezco su ayuda

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de jasistemas

Quiza te sirva ver como lo

Quiza te sirva ver como lo resuelve "opensslkey.cs" que puedes encontrar en google, es codigo c#.
Permite acceder a certificados en formato .p12, asi como directo al .key y .cer

Si el error te lo manda aqui:
InputStream keyInput = new FileInputStream(pKeyFile);

debe ser x que keyfile no existe.