¡Esta es una revisión vieja del documento!
Si bien este proceso aparece detallado en el manual de referencia, muchos me lo han preguntado, por lo que lo incluyo acá también.
La creación de llaves la haremos con openssl, que consiste en paquete de herramientas de administración y bibliotecas relacionadas con la criptografía, la cual es usado en linux por ssh y https.
Tienes que considerar que NO importa donde crees las llaves, solo importa que sean correctamente usadas. Esto lo afirmo debido a que hay personas que piensan que deben necesariamente ser creadas en el servidor.
Si no tienes el paquete openssl y estás en linux, puedes instalarlo por ejemplo usando el comando :
$ sudo apt-get install openssl
Una vez instalado generamos la llave de la siguiente manera.
openssl genrsa -des3 -out TUCODIGODECOMERCIO.key 2048
Recomiendo que todos los nombres de los archivos que generemos desde ahora correspondan al código de comercio que posees. Hay 3 etapas en la certificación y cada una tiene un código distinto, así evitamos problemas. Además el plugin de webservices busca el archivo cuyo nombre corresponda al código de comercio.
Por ejemplo, el código de comercio en producción puede ser algo como 59703151XXXX, por lo que desde ahora en vez de TUCODIGODECOMERCIO usaremos 59703151XXXX.
$ openssl req -new -key 59703151XXXX.key -out 59703151XXXX.csr Enter pass phrase for 59703151XXXX.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:CL State or Province Name (full name) [Some-State]: Locality Name (eg, city) []:Santiago Organization Name (eg, company) [Internet Widgits Pty Ltd]:Pandora LTDA Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:59703151XXXX Email Address []:ecommerce@pandora.cl Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Es muy importante que en Common Name introduzcas tu código de comercio, ya que se usa para poder validar el certificado.
Si pudieron notar, cuando generamos la llave, nos pidió una clave. Para simplificar el proceso de comunicado con transbank le sacaremos esa clave a la llave antes de generar el certificado. Simplemente creamos una llave temporal que tendrá el contenido original y a la que estábamos ocupando ahora le damos el valor original menos la llave.
cp 59703151XXXX.key 59703151XXXX.key2 openssl rsa -in 59703151XXXX.key2 -out 59703151XXXX.key
El certificado una vez que pasamos a producción debe de tener al menos un tiempo de 5 años, por lo que en el campo days le damos un valor de 1825 ( Puedes hacer las matemáticas si así lo quieres ).
openssl x509 -req -days 1825 -in 59703151XXXX.csr -signkey 59703151XXXX.key -out 59703151XXXX.crt
El certificado 59703151XXXX.crt debe de ser enviado a Transbank.
Además de lo anterior, cuando te llegue ese correo mágico en donde te dicen que ya estás en producción, te pedirás lo siguiente ( Sacado desde el último correo que me enviaron ) :
Para continuar necesitamos que suba lo siguiente a su servidor y nos envíe la URL para su descarga a Soporte@Transbank.cl:
Por el lado de la tienda deberán:
La URL del WSDL productivo para transaccionar:
WS Normal: https://webpay3g.transbank.cl/WSWebpayTransaction/cxf/WSWebpayService?wsdl
Con estos puntos debiésemos estar en condiciones de realizar una prueba de venta y comenzar a transaccionar.
En caso de cualquier duda o consulta favor tomar contacto con nosotros por este medio a Soporte@Transbank.cl
Estaremos atentos a sus comentarios.
De lo anterior simplemente preocúpense de subir sus llaves donde corresponda, cambiar la configuración del plugin, ver la imagen gif y mandarles la información correspondiente (Certificado CRT)
— Cristian Tala Sánchez 2016/01/04 06:59