Consumir webservices bajo Https con Java
Si queremos consumir un WS que corre bajo https podemos realizar lo siguiente:
Paso 1/ Descargar los certificados del servicio
El Keysotre o JKS (Java Key Store) es un repositorio de certificados de seguridad, certificados de autorización o certificados de clave pública, utilizados por ejemplo en el cifrado SSL. Usualmente el JDK contiene un almacén de claves de certificados de autorización (CA) en la ruta jre/lib/security/cacerts. Así mismo el JDK provee una herramienta llamada keytool para manipular el keystore.
Para importar un certificado a nuestro keystore, lo primero que debemos hacer es descargar dicho certificado desde la dirección url del wsdl. Para ello ponemos esa url en un navegador. Al cargar la página podremos comprobar que junto a la barra de direccion saldrá un candado o algo similar (depende del navegador). Al hace click sobre él se nos abrirá un formulario donde se puede ver toda la información referente a los certificados que se usan. Dese esa pantalla se deben exportar (dependiendo del navegador será más o menos complejo encontrar el botón de exportar/copiar en archivo/…).
Se debe exportar en formato X.509 codificado base 64 (.CER)
Paso 2/ Importar el certificado digital a nuestro keystore
Se deben importar los certificados descargados a nuestro almacen de claves. Hay herramientas desde las que se puede hacer de forma bastante cómodo como es Keystore Explorer. Pero sino siempre puedes usar keytool:
keytool -import -keystore "C:\Archivos de programa\Java\jre1.6.0_05\lib\security\cacerts" -file c:\certificadodescargado.cer -storepass changeit
Paso 3/ Utilización
Ahora al ejecutar nuestra aplicación java al intentar conectar con ese ws localizará los certificados y dejará realizar la conexión. Se le puede indicar donde esta nuestro almacen de certificados así:
System.setProperty("javax.net.ssl.keyStore", "C:\Program Files (x86)\Java\jdk1.6.0_23\jre\lib\security\cacerts"); System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); System.setProperty("javax.net.ssl.trustStore", "C:\Program Files (x86)\Java\jdk1.6.0_23\jre\lib\security\cacerts"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
TCPMON
TCPMON es un sniffer que permite visualizar los paquetes enviados por la red de una forma muy sencilla. Sobretodo, es muy útil cuando se quieren detectar problemas con Servicios Web.
En esta página hay un tutorial bastante completo sobre ello.
Sólo añadir que el tcpmon se encuentra incluido en axis. Por lo tanto, se puede lanzar simplemente ejecutando desde la consola:
java -cp axis.jar org.apache.axis.utils.tcpmon
(Nota: axis.jar está en AXIS_HOME/lib)
Categorias
- adobe (2)
- agile (1)
- Alfresco (1)
- Android (26)
- Angular (6)
- angularjs (10)
- apache (1)
- axis (2)
- Bases de datos (14)
- Bootstrap (1)
- C# (3)
- Cámara (1)
- chrome (3)
- Codeigniter (2)
- Control de Versiones (2)
- CSS (25)
- CVS (1)
- Django (9)
- Django Rest Framework (1)
- DNS (1)
- Docker (3)
- dominio (1)
- eclipse (5)
- Entity Framework (2)
- ETL (1)
- Firefox (6)
- flash (1)
- freecad (1)
- Git (12)
- GitHub (4)
- gpg (2)
- Groovy (1)
- Handlebars (1)
- hibernate (4)
- hosting (1)
- HTML (50)
- HTML 5 (26)
- Impresión 3D (9)
- Inkscape (1)
- IOS (2)
- ireports (3)
- Java (44)
- Javascript (55)
- JBoss (5)
- JPA (2)
- JQuery (20)
- Json (7)
- JSP (6)
- Keycloak (1)
- Lamp (1)
- LDAP (2)
- lean (1)
- linkedin (1)
- LINQ (1)
- linux (13)
- Livecycle (1)
- log (1)
- microcontroladores (1)
- MongoDB (4)
- MySQL (8)
- Node.js (5)
- OC4J (1)
- Openshift (2)
- Oracle (6)
- Patrones de Diseño (1)
- Photoshop (2)
- php (20)
- PostgreSQL (1)
- python (19)
- rabbitmq (1)
- Raspberry PI (13)
- Raspherry PI (5)
- React (6)
- seguridad (3)
- Selenium (3)
- Sencha Touch (1)
- Sin categoría (29)
- Spring (17)
- spring-boot (3)
- SQL (7)
- SQLServer (1)
- SSO (1)
- struts (2)
- SVN (1)
- Talend (1)
- Tomcat (6)
- unity (3)
- Visual Studio Code (2)
- vmware (5)
- Web Services (11)
- windows (18)
- wordpress (10)
- Xiaomi (1)
- xml (2)
Trabajos Realizados
- App Android – Autoka Fr
- App Android – Cartelera Cántabra
- App Android – Gramática y Vocabulario Ingles
- App Android – Hoja de Gastos
- App Android – Hotel Torre Cristina
- App Android – OcioEnjoy
- App Android – Visor CardBoard
- App Firefox – Managapp
- DiamanteBomba – DisasterCode
- Generador de Partes de Trabajo
- GitHub – Android Web Generator
- GitHub – Dynamic Angular Gallery
- GitHub – Dynamic React Gallery
- GitHub – Sotilizator
- GitHub – SpringAngularJS
- GitHub – Swiper Dynamic Angular Gallery
- HazParejas – DisasterCode
- RompeCabezas – DisasterCode
- Unity Game – English Couple
- Unity Game – Kill Wasp
- WordPress – El Buen Apicultor
- WordPress – El Cajón de los Retales
- WordPress – El Vestidito Azul
- WordPress – Feuchas
- WordPress – Fragua de Navajas Ponce
- WordPress – Humor a las Tres
- WordPress – Photo Places