red de facturas electrónicas especificaciones de seguridad ... · factura electrónica se basa en...

26
Especificaciones de Seguridad para Clientes Página 1 de 26 Versión 2.0 Vigencia: Febrero 2014 Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso. Red de facturas electrónicas Especificaciones de Seguridad para Clientes Versión 2.0

Upload: others

Post on 04-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 1 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Red de facturas electrónicas Especificaciones de Seguridad para Clientes

Versión 2.0

Page 2: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 2 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Contenido del documento

1. Introducción ................................................................................................................................... 4

1.1 Objetivo ..................................................................................................................................... 4 1.2 Alcance ..................................................................................................................................... 4

2. Acceso a los Web Services .......................................................................................................... 4

2.1 Generación del CSR (Certificate Signing Request) ................................................................. 4 2.1.1 Generar un juego de claves Pública y Privada: ................................................................ 5 2.1.2 Guardar el Keystore ......................................................................................................... 8 2.1.3 Generar el CSR en formato PKCS#10: ............................................................................. 8 2.1.4 Generar el HASH MD5 del CSR ....................................................................................... 9 2.1.5 Cargar el request.csr y el hash MD5 al site de Interfacturas: ........................................... 9 2.1.6 Imprimir la Carta de Ratificación/ Anexo ........................................................................... 9

2.2 Importación del Certificado Respuesta de la CA .................................................................... 10 2.2.1 Descargar los certificados desde Interfacturas ............................................................... 10 2.2.2 Importar el Certificado de la CA al Keystore: .................................................................. 11 2.2.3 Importar el Certificado Respuesta generado por la CA al Keystore: .............................. 13 2.2.4 Guardar el Keystore ....................................................................................................... 15 2.2.5 Exportar la Clave Privada a PKCS#12 con el KeyTool GUI 1.7 ..................................... 15 2.2.6 Comprobar conectividad ................................................................................................. 16

2.3 Renovación del certificado desde el Keystore ....................................................................... 16

3. Código Fuente Cliente WS de Ejemplo ...................................................................................... 16

3.1 Generar las clases desde el WSDL ........................................................................................ 16 3.1.1 JARs necesarios a utilizar ............................................................................................... 16 3.1.2 Setear el CLASSPATH con los JARs necesarios ........................................................... 17 3.1.3 Armado de clases desde el WSDL.................................................................................. 17 3.1.4 Crear una clase java que ejecute el cliente .................................................................... 17

4. URLs .............................................................................................................................................. 20

5. Instalación del certificado en un navegador para consultar el WSDL ................................... 21

Page 3: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 3 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Control de cambios

Fecha Version Descripción del cambio 15/03/2011 1.8 Se cambiaron en el punto URLs, las IP de QA y Producción

15/11/2011 1.9 Se actualizan pantallas y aclaran algunos puntos 22/01/2014 2.0 Se realiza una revisión del documento y se agregan los pasos a seguir cuando simplemente

se debe renovar el certificado

Page 4: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 4 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Especificaciones de Seguridad

1. Introducción

1.1 Objetivo El objetivo del presente documento es detallar las especificaciones de seguridad para acceder a los Web Services del sistema interfacturas.

1.2 Alcance Este documento brinda las especificaciones de seguridad para que las Empresas habilitadas puedan acceder a los Web Services de la Red.

2. Acceso a los Web Services El mecanismo implementado para el acceso a los Web Services (SOAP/HTTPS) de la Red de Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías). Esto significa que cada empresa deberá contar con un certificado cliente para acceder a los servicios de la Red.

A tal fin, se presenta un mecanismo posible para la obtención de los certificados por parte de las empresas: generación de una CSR "Certificate Signing Request" que será procesado on-line por la CA de Interbanking (CA que no cuenta en su raíz con una CA reconocida).

2.1 Generación del CSR (Certificate Signing Request) Se requerie un certificado digital X.509 que debe contener en el Asunto (Subject) los siguientes valores: CN=“El CUIT de la Empresa” OU=“Area de la Organización” O=“Razón Social de la Empresa” C=“País” Ejemplo: CN=30000000007 OU=Factura Electrónica O=Empresa S.A. C=AR Es recommendable que el algoritmo de la Clave Publica (Public Key Algorithm) del certificado sea RSA de 1024 bits, y que el algoritmo usado para la firma digital del certificado (Signature Algorithm) sea SHA1withRSA o MD5withRSA.

Se puede utilizar el comando keytool que esta incluido en el JDK (Java Development Kit), el KeyTool GUI 1.7 (herramienta open source) o cualuiqer otra herramienta de cualquier plataforma que genere un Certificate Signing Request de un Certificado Digital X.509.

Page 5: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 5 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.1.1 Generar un juego de claves Pública y Privada:

Con el keytool de java:

keytool -genkey -alias certFactura -sigalg SHA1withRSA -keystore keyStoreFE.ks -keyalg RSA -validity 365 -dname "CN=30000000007,OU=Factura Electronica,O=EMPRESA S.A.,C=AR"

Aclaraciones:

-alias certFactura Nombre que tendrá la clave privada dentro del KeyStore. -keystore keyStoreFE.ks Path absoluto y nombre del archivo del KeyStore. -dname "CN=30000000007,OU=Factura Electronica,O=EMPRESA S.A.,C=AR" Datos de la empresa, en CN=Número del CUIT de la Empresa, OU=Area de la Empresa, O=Razón Social, C=Pais.

Con el KeyTool GUI 1.7:

Abrir el KeyTool GUI 1.7 y seleccionar File -> New Keystore

Page 6: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 6 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Seleccionar el tipo JKS

En el menú Tools, seleccionar Generate Key Pair

El Key Pair debe ser RSA de 1024

Completar los datos del certificado, el algoritmo debe ser SHA1withRSA

Page 7: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 7 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Ingresar un alias para el Key Pair

Nos aparecerá una ventana de confirmación de la generación y veremos el Key Pair dentro del Keystore

Page 8: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 8 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.1.2 Guardar el Keystore Esto se realiza desde la opción File-> Save keystore MUY IMPORTANTE: Las dos passwords que solicita el proceso deben ser iguales.

2.1.3 Generar el CSR en formato PKCS#10:

Con el keytool de java:

keytool -certreq -alias certFactura -file request.csr -keystore keyStoreFE.ks -dname "CN=30000000007,OU=Factura Electronica,O= EMPRESA S.A.,C=AR"

Con el KeyTool GUI 1.7:

Hacer un click con el botón derecho del mouse sobre el Key Pair y seleccionar Generate CSR

Guardar el CSR

Page 9: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 9 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.1.4 Generar el HASH MD5 del CSR

Este HASH es necesario para validar la integridad del archivo request.csr que se carga en interfacturas; no se refiere a la huella digital del Certificado (Certificate fingerprint), sino al checksum MD5 del contenido del archivo request.csr. Una alternativa es descargar algún programa (que implemente el algoritmo para el calculo del checksum MD5) que dado un archivo le devuelva el hash MD5. Por ejemplo: http://www.pc-tools.net/files/win32/freeware/md5sums-1.2.zip C:\md5sums-1.2>md5sums request.csr http://www.fastsum.com/download/fsum.zip C:\fsum>fsum request.csr

2.1.5 Cargar el request.csr y el hash MD5 al site de Interfacturas:

• En la suscripción luego de seleccionar el servicio adicional “Operación Automática - Vía WebService”,

• Si ya existe como empresa desde el menú Administración > Empresa luego de agregar el servicio adicional indicado.

• Si debe renovar un certificado existente, hágalo desde el menú Administración > Empresa, luego acceder al Detalle del certificado y por último presiones Renovar

Visualizará una pantalla similar a la siguiente:

2.1.6 Imprimir la Carta de Ratificación/ Anexo

Page 10: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 10 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Se debe imprimir la Carta de Ratificación/Anexo y enviarlo al Banco correspondiente cuando se trate del ambiente de producción. Cuando esté haciendo estos pasos en el ambiente de QA (pruebas) envíe un mail a [email protected] indicando que ha quedado pendiente el certificado.

2.2 Importación del Certificado Respuesta de la CA

2.2.1 Descargar los certificados desde Interfacturas Una vez que el Banco (o implementaciones) apruebe la suscripción, el alta del offering o renovación del certificado, ya tendrá disponible para bajar desde el menú Administración Empresa Detalle del Certificado:

a) El certificado de la empresa firmado por la CA de Interbanking (CertificadoSigned.zip ->

interfacturas-30000000007.cer). b) El certificado publico de la CA de Interbanking (CertificadoCA.zip -> interfacturasCA.cer).

c) Importante: En el ambiente de QA, la empresa va a necesitar el certificado HTTPS de

la URL del Web Service, porque es un Self Signed Certificate, por lo que debe utilizarse con los clientes que intenten establecer una conexión SSL. Solicitarlo a [email protected] Hay algunos casos que en el ambiente de producción también se necesite incorporar en el keystore el certificado HTTPS a pesar de ser emitido por una entidad certificante de confianza. De ser necesario, solicitarlo también a [email protected]

Pantalla de detalle de certificado

Page 11: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 11 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.2.2 Importar el Certificado de la CA al Keystore:

Con el keytool de java:

keytool -import -file interfacturasCA.cer -keystore keyStoreFE.ks –trustcacerts

Con el KeyTool GUI 1.7:

En el menú Tools, seleccionar Import Trusted Certificate

Seleccionar el archivo del certificado de la CA descargado (interfacturasCA.cer).

Aparecerá un mensaje de que el certificado no se puede establecer como un certificado de confianza, esto es porque la CA de Interbanking es un Self Signed Certificate.

Page 12: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 12 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Muestra el detalle del Certificado de la CA.

Aceptar el certificado como uno de confianza.

Page 13: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 13 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Asignarle un alias al certificado de la CA para identificarlo dentro del Keystore.

2.2.3 Importar el Certificado Respuesta generado por la CA al Keystore:

Con el keytool de java:

keytool -import -alias certFactura -file interfacturas-30000000007.cer -keystore keyStoreFE.ks

Con el KeyTool GUI 1.7:

Page 14: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 14 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Hacer un click con el botón derecho del mouse sobre el Key Pair y seleccionar Import CA Reply

Seleccionar el archivo del certificado de la empresa firmado por la CA de Interbanking (interfacturas-30000000007.cer), descargado de Interfacturas.

Luego del mensaje de finalización, se podrá visualizar que el detalle del KeyPair, ahora en el campo Issuer se ven los datos de la CA de Interbanking.

Page 15: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 15 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.2.4 Guardar el Keystore

Esto se realiza desde la opción File-> Save keystore

2.2.5 Exportar la Clave Privada a PKCS#12 con el KeyTool GUI 1.7

Para algunas tecnologías distintas de JAVA (por ejemplo .NET), podría de ser necesario exportar la clave privada del Keystore a un archivo (.pfx o .p12) en formato PKCS#12, para ser utilizado en algún cliente Web Service al establecer la comunicación SSL de doble autentificación.

Page 16: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 16 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

2.2.6 Comprobar conectividad Si quisiera comprobar la conectividad o bien visualizar desde un explorador el WSDL por ejemplo de cada WebService, debería instalar el certificado (.pfx o .p12) en formato PKCS#12 en el navegador de Internet que utilice. Y en la barra de direcciones indicar la URL que desee seguida de “?WSDL” Para más información, ver punto 5

2.3 Renovación del certificado desde el Keystore

Si ya se está utilizando un Keystore para acceder a los webservices y lo que se desea es renovar el certificado expirado, debe abrir el Keystore y seguir los pasos a partir del punto 2.1.3. En el punto 2.2 se puede obviar la importación de los certificados que ya deberían estar incluidos en el Keystore (paso 2.2.1 b y c; y paso 2.2.2)

3. Código Fuente Cliente WS de Ejemplo Describiremos los pasos a seguir para generar un cliente Web Service con Axis 1.4, un framework open source para Web Service.

3.1 Generar las clases desde el WSDL

3.1.1 JARs necesarios a utilizar wsdl4j-1.5.1.jar mail.jar commons-logging-1.0.4.jar commons-httpclient-3.0-rc2.jar commons-discovery-0.2.jar commons-codec-1.3.jar axis-wsse-1.0.jar axis-saaj-1.0.jar axis-jaxrpc-1.4.jar axis-1.4.jar activation.jar

Page 17: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 17 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

saaj.jar log4j-1.2.14.jar

3.1.2 Setear el CLASSPATH con los JARs necesarios set AXIS_LIB= D:\proyecto\clienteAxisQA

set AXISCLASSPATH=%AXIS_LIB%\axis-1.4.jar;%AXIS_LIB%\commons-discovery-

0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\axis-jaxrpc-

1.4.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-

1.2.14.jar;%AXIS_LIB%\activation.jar;%AXIS_LIB%\axis-saaj-1.4.jar;%AXIS_LIB%\axis-wsse-

1.0.jar;%AXIS_LIB%\commons-httpclient-3.0-rc2.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\wsdl4j-

1.5.1.jar

3.1.3 Armado de clases desde el WSDL Ejecutar la siguiente clase pasando como parámetro el nombre del archivo del WSDL java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java FacturaWebService.wsdl

La linea anterior va a generar las siguientes clases: ar.com.ib.cfe.ejb.services.FacturaWebServiceLocator; ar.com.ib.cfe.ejb.services.FacturaWebService; ar.com.ib.cfe.ejb.services.FacturaWebServicePortType; ar.com.ib.cfe.ejb.services.FacturaWebServiceSoapBindingStub;

3.1.4 Crear una clase java que ejecute el cliente Ahora necesitamos una clase que utilice las clases creadas para invocar al Web Service de Interfacturas. A continuación mostramos un código de ejemplo de una clase Main.java que invoca al Web Service. Esta clase recibe 4 parametros al ejecutarse: InputLoteFacturas : Path del xml de Lotes de Facturas a enviar.

KeyStore path : Path del keyStore y el trustStore. KeyStore password : Password del keyStore y el trustStore.

MUY IMPORTANTE: Las dos passwords que solicita el proceso deben ser iguales.

[urlWS] : (Opcional) URL del WS a enviar las facturas. Por default

https://wsqacfe.interfacturas.com.ar/ws/FacturaWebService

java –cp %AXISCLASSPATH% Main lote.xml "D:\\keyStore.ks" password

https://wsqacfe.interfacturas.com.ar/ws/FacturaWebService

Page 18: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 18 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import ar.com.ib.cfe.ejb.services.FacturaWebServiceLocator;

import ar.com.ib.cfe.ejb.services.FacturaWebServicePortType;

public class Main {

public Main() {

}

/**

* @param args

*/

public static void main(String[] args) throws Exception {

if ((args.length == 1) && "/?".equals(args[0])) {

System.out.println(help());

System.exit(0);

}

if (args.length < 3) {

System.out.println("Faltan parametros.");

System.out.println(help());

System.exit(1);

}

String fileName = args[0];

String keyStoreName = args[1];

String keyStorePassword = args[2];

String urlWS = null;

if (args.length == 4) {

urlWS = args[3];

}

Main test = new Main();

test.enviarFacturas(fileName, keyStoreName, keyStorePassword, urlWS);

}

public void enviarFacturas(String fileName, String keyStoreName, String keyStorePassword,

String urlWS) {

try {

System.out.println("Cliente Web Service de Ejemplo para conectarse a

Interfacturas...");

File loteFile = new File(fileName);

byte[] loteByte = getBytesFromFile(loteFile);

String lote = new String(loteByte);

System.out.println("Enviando Lote de Facturas...");

System.out.println("Lote para Enviar: " + lote);

System.setProperty("javax.net.ssl.keyStore", keyStoreName);

System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);

System.setProperty("javax.net.ssl.trustStore", keyStoreName);

System.setProperty("javax.net.ssl.trustStorePassword", keyStorePassword);

Page 19: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 19 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

FacturaWebServiceLocator service = new FacturaWebServiceLocator();

FacturaWebServicePortType port = null;

if (urlWS!=null) {

port = service.getFacturaWebServicePort(new URL(urlWS));

} else {

port = service.getFacturaWebServicePort();

}

String respuesta = port.receiveFacturas(lote);

System.out.println("Respuesta: " + respuesta);

} catch (Exception e) {

e.printStackTrace();

}

}

public static String help() {

StringBuffer sb = new StringBuffer();

sb.append("Cliente Web Service de Ejemplo para conectarse a Interfacturas\n\n");

sb.append("parametros:\n");

sb.append("\tinputLoteFacturas : Path del xml de Lotes de Facturas a enviar.\n");

sb.append("\tkeyStore path : Path del keyStore y el trustStore.\n");

sb.append("\tkeyStore password : Password del keyStore y el trustStore. Debe ser la

misma que de la clave privada\n");

sb.append("\t[urlWS] : (Opcional) URL del WS a enviar las facturas.

Por default https://wsqacfe.interfacturas.com.ar/ws/FacturaWebService\n");

return sb.toString();

}

public static byte[] getBytesFromFile(File file) throws IOException {

InputStream is = new FileInputStream(file);

// Get the size of the file

long length = file.length();

// You cannot create an array using a long type.

// It needs to be an int type.

// Before converting to an int type, check

// to ensure that file is not larger than Integer.MAX_VALUE.

if (length > Integer.MAX_VALUE) {

// File is too large

}

// Create the byte array to hold the data

byte[] bytes = new byte[(int) length];

// Read in the bytes

int offset = 0;

int numRead = 0;

while ((offset < bytes.length) && ((numRead = is.read(bytes, offset, bytes.length -

offset)) >= 0)) {

offset += numRead;

}

// Ensure all the bytes have been read in

if (offset < bytes.length) {

throw new IOException("Could not completely read file " + file.getName());

}

Page 20: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 20 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

// Close the input stream and return bytes

is.close();

return bytes;

}

}

4. URLs Las url de los Web Service por ambiente son las siguientes: Ambiente de pruebas: https://wsqacfe.interfacturas.com.ar/ws/ IP: 200.49.85.230 Ambiente productivo: https://ws1.interfacturas.com.ar/ws/ IP: 200.117.177.20 Siempre hay dos Web Service, uno que recibe el xml como String (texto) y otro que termina con el sufijo “ConSchema” recibe el xml puro, tiene el schema embebido en el WSDL: Por ejemplo:

https://wsqacfe.interfacturas.com.ar/ws/FacturaWebService o https://wsqacfe.interfacturas.com.ar/ws/FacturaWebServiceConSchema

Y para consultar el WSDL desde un browser, se le agrega al final “?WSDL”:

https://wsqacfe.interfacturas.com.ar/ws/FacturaWebService?WSDL o https://wsqacfe.interfacturas.com.ar/ws/FacturaWebServiceConSchema?WSDL

Todos los WebServices poseen métodos, éstos pueden ser consultados en la “Guía WS y métodos” y los documentos de especificaciones donde se pueden observar el detalle y los esquemas de los mismos.

Page 21: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 21 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

5. Instalación del certificado en un navegador para consultar el WSDL Si quisiera comprobar la conectividad, validar el certificado o bien visualizar desde un explorador el WSDL por ejemplo de cada WebService, debería instalar el certificado (.pfx o .p12) en formato PKCS#12 en el navegador de Internet que utilice. Y en la barra de direcciones indicar la URL que desee seguida de “?WSDL”

En caso de querer acceder a alguno de los WebServices sin tener instalado el certificado o con un certificado no válido, el mensaje que aparecerá será similar al siguiente

Ingresar al menú Herramientas opciones de Internet

Page 22: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 22 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Sobre la solapa “Contenido” acceder al botón Certificados

Aparecerá la siguiente pantalla, se debe presionar el botón Importar

Page 23: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 23 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Realizar la búsqueda del archivo .p12

Ingresar la clave privada

Page 24: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 24 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Indicar que seleccione automáticamente el almacén de certificados

Por último confirmar la finalización de la importación de certificados

Page 25: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 25 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Confirmar la advertencia de seguridad, la cual aparece sobre todo en el ambiente de pruebas, la probabilidad de que aparezca en el ambiente productivo es baja.

Se presentará el siguiente mensaje:

Quedará el certificado en el listado de certificados personales

Page 26: Red de facturas electrónicas Especificaciones de Seguridad ... · Factura Electrónica se basa en el empleo de "Two Way SSL Authentication" (SSL con autentificación de dos vías)

Especificaciones de Seguridad para Clientes Página 26 de 26 Versión 2.0 Vigencia: Febrero 2014

Nivel de Seguridad: Restringido | Este documento es copia no controlada una vez impreso.

Por último, para chequear la correcta instalación del certificado, se debe probar colocar una URL válida en el explorer, por ejemplo:

https://wsqacfe.interfacturas.com.ar/ws/FacturaWebServiceConSchema?WSDL

Si el certificado es correcto, entonces se mostrará una pantalla similiar a la siguiente: