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
- Inicie sesión o regístrese para enviar comentarios
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.