# Llaves privada y pública
# Generando las llaves privada y pública
Para el proceso de firma de los mensajes, usaremos un mecanismo estándar de criptografía asimétrica, por medio de llaves privadas y públicas.
A continuación encontrarás una lista paso a paso para generar el par de llaves RSA, y cómo exportar la llave pública.
Los siguientes ejemplos se muestran utilizando herramientas para la línea de comandos de Unix o MacOS
# Unix/Mac command line tools
- Generar el par RSA con openssl
openssl genrsa -des3 -out my_rsa_key_pair 2048 Generating RSA private key, 2048 bit long modulus
..........................................................+++
.......................................................+++
e is 65537 (0x10001)
Enter pass phrase for my_rsa_key_pair: ********
Verifying - Enter pass phrase for my_rsa_key_pair: ********
TIP
Utilizando la opción -des3 asegura que el archivo pem generado esté protegido por una frase contraseña.
ls
my_rsa_key_pair
- Exportar la llave privada hacia el archivo private_key.pem
openssl pkcs8 -topk8 -inform PEM -in my_rsa_key_pair -outform PEM -out private_key.pem -nocrypt Enter pass phrase for my_rsa_key_pair: ********
ls
my_rsa_key_pair private_key.pem
- Exportar la llave pública hacia el archivo public_key.pem
openssl rsa -in my_rsa_key_pair -outform PEM -pubout -out public_key.pem Enter pass phrase for my_rsa_key_pair: ********
writing RSA key
ls
my_rsa_key_pair private_key.pem public_key.pem
# Windows
WARNING
La herramienta PuttyGen no es recomendada ya que el formato por defecto no es PKCS8. Usa el contenedor Docker de Alpine para generar la llave, o instala GitBash, o utiliza OpenSSL para Windows (opens new window).
# Utilizando el contenedor Docker Alpine
$ docker run --name openssl -it pgarrett/openssl-alpine:latest /bin/ash ... in the container, simple executes openssl command sequence 1) - 3) described above.
/ # openssl genrsa -des3 -out my_rsa_key_pair 2048
[Enter pass phrase for my_rsa_key_pair:] ...
/ # openssl pkcs8 -topk8 -inform PEM -in my_rsa_key_pair -outform PEM -out private_key.pem -nocrypt
/ # openssl rsa -in my_rsa_key_pair -outform PEM -pubout -out public_key.pem
/ # cat public_key.pem
-----BEGIN PUBLIC KEY-----
MIIBIjA... / # exit ## Puedes copiar y pegar las llaves o usar el comando COPY para obtener los archivos de llaves.
$ docker cp openssl:/public_key.pem .
$ docker cp openssl:/private_key.pem .
# Utilizando GitBash
Si tu tienes instalado GitBash en tu maquina con MS Windows, puedes usar los pasos y comandos de la sección Unix/MacOS.
Resguarda tus llaves
Guarda tu llave privada en un lugar seguro y solo comparte tu llave pública.
No compartas tu llave privada
NUNCA compartas la llave privada generada en los pasos anteriores. Walmart / Lider nunca solicitará la llave privada.
# Solicita el registro de tu llave pública
Una vez generada las llaves con los pasos anteriores, envía tu llave pública al correo soporteb2b@walmart.com desde tu cuenta de correo registrada en RetailLink con los siguientes datos.
- Ambiente : Dev o Prod
- Llave pública : public_key.pem
Las llaves son diferentes por ambiente
Para aumentar la seguridad y evitar errores debes enviar una llave diferentes para los ambientes de prueba o de producción. Para accesos múltiples por favor consulta al correo soporteb2b@walmart.com.
# Confirmación de registro existoso
Si los datos anteriores son correctos, se te enviará un correo de confirmación junto con un conjunto de cabeceras de autentificación únicos y específicos para la llave pública registrada, los cuales deben ser enviados en cada solicitud a la API.