Está en la página 1de 5

Generar claves y certificados para configurar el

inicio de sesión único


Google Workspace ofrece un servicio de inicio de sesión único (SSO) a los clientes que usan
Google Workspace o Google Workspace for Education. El servicio de SSO de Google Workspace
admite claves públicas y certiAcados generados tanto con el algoritmo RSA como con el algoritmo
DSA. Para utilizarlo, debes generar un conjunto de claves públicas y privadas, así como un
certiAcado X.509 que contenga la clave pública. Una vez que tengas una clave pública o un
certiAcado, tendrás que registrarlos con Google. Para ello, basta con que los subas mediante la
consola de administración de Google.

El método para generar claves y certiAcados suele depender de la plataforma de desarrollo y del
lenguaje de programación que se utilicen. A continuación se indican varias formas de generar las
claves y el certiAcado necesarios para conAgurar el servicio de SSO de Google Workspace.

Usar OpenSSL
Aunque existen muchos métodos para crear pares de claves públicas y privadas, la herramienta de
código abierto OpenSSL es una de las más utilizadas. Se ha incluido en las principales plataformas
y ofrece una interfaz de líneas de comando sencilla para generar claves.

Crear una clave privada RSA


La generación de claves privadas RSA con OpenSSL se realiza en un solo paso:

openssl genrsa -out rsaprivkey.pem 2048

Con este comando, se genera una clave privada codiAcada con PEM, que se guarda en el archivo
rsaprivkey.pem. En este ejemplo, se crea una clave de 2048 bits que puede usarse prácticamente
para todo. La clave privada resultante no debe compartirse con nadie y sirve para Armar y descifrar
datos.

En algunas implementaciones, en particular en las que se basan en Java, es posible que se


necesiten DER o PKCS8, que pueden generarse, por ejemplo, con los siguientes pasos adicionales:

1. openssl rsa -in rsaprivkey.pem -pubout -outform DER -out rsapubkey.der


2. openssl pkcs8 -topk8 -inform PEM -outform DER -in rsaprivkey.pem -out
rsaprivkey.der -nocrypt
Con el paso 1, se genera la clave pública en formato DER.

Con el paso 2, se genera la clave privada en formato pkcs8 y DER. Una vez generadas, puedes
utilizar ambas claves (rsapubkey.der y rsaprivkey.der).

Crear una clave privada DSA


Se pueden generar claves DSA en dos pasos:

1. openssl dsaparam -out dsaparam.pem 2048


2. openssl gendsa -out dsaprivkey.pem dsaparam.pem
Con el paso 1, se crea un archivo de parámetro DSA, dsaparam.pem, que, en este caso, indica a
OpenSSL que cree una clave de 2048 bits en el paso 2. El archivo dsaparam.pem no es una clave,
por lo que puede descartarse una vez creadas las claves pública y privada. En el segundo paso se
crea la clave privada en el archivo dsaprivkey.pem, que no debe compartirse con nadie.

Para exportar la clave a un formato DER (binario), puedes seguir estos pasos:

1. openssl dsa -in dsaprivkey.pem -outform DER -pubout -out dsapubkey.der


2. openssl pkcs8 -topk8 -inform PEM -outform DER -in dsaprivkey.pem -out
dsaprivkey.der -nocrypt

Con el paso 1, se extrae la clave pública en formato DER.

Con el paso 2, se convierte la clave privada a los formatos pkcs8 y DER. Una vez que hayas
completado este paso, podrás utilizar este par de claves pública (dsapubkey.der) y privada
(dsaprivkey.der).

Crear un certificado
Una vez que tengas el par de claves, podrás crear fácilmente un certiAcado X.509. Este certiAcado
incluye la clave pública correspondiente, junto con metadatos relacionados con la organización que
lo ha creado. Para crear un certiAcado con Arma automática a partir de una clave privada RSA o
DSA, sigue este paso:

openssl req -new -x509 -key dsaprivkey.pem -out dsacert.pem

Después de responder a varias preguntas, se creará el certiAcado y se guardará como dsacert.pem,


que es el archivo que debes subir a Google Workspace mediante el panel de control cuando
conAgures el SSO.

Crear una huella digital de certificado


Algunas aplicaciones necesitan una huella digital de certiAcado X.509, más que el certiAcado en sí
mismo. Una huella digital es un resumen del certiAcado en formato binario x509. El tipo de huella
digital depende del algoritmo con el que se genera, como SHA-1 o SHA-256.

Para crear una huella digital SHA-256 a partir de un certiAcado X.509, usa el siguiente comando
(recuerda utilizar el nombre de tu archivo .pem de certiAcado):

openssl x509 -noout -fingerprint -sha256 -inform pem -in


"GoogleIDPCertificate-domain.com.pem"

Usar Microsoft Visual Studio para .NET


Microsoft Visual Studio 2005 ofrece en el directorio Common7\Tools\Bin herramientas con las que
se pueden generar certiAcados para usarlos con Google Workspace. Para crear el par de claves
pública y privada, y el certiAcado en .NET, sigue estos pasos:

1. makecert -r -pe -n "CN=Test Certificate" -sky exchange -sv testcert.pvk


testcert.cer
2. pvk2pfx -pvk testcert.pvk -spc testcert.cer -pfx testcert.pfx

De forma predeterminada, en los comandos anteriores se utiliza el algoritmo RSA. Con el paso 1, se
crean un certiAcado X.509 con Arma automática (testcert.cer) y la clave privada correspondiente
mediante la herramienta para crear certiAcados (makecert.exe).

En el paso 2, se utiliza la herramienta pvk2pfx (pvk2pfx.exe) para crear un archivo de intercambio


de información personal (PFX) a partir de archivos CER y PVK. El archivo PFX contiene las claves
pública y privada.

El archivo testcert.cer creado en el paso 1 se puede subir a Google Workspace mediante el panel de
control. Con el archivo testcert.pfx del paso 2, se puede crear una instancia de X509CertiAcate2 (en
.NET 2.0 y versiones posteriores) para Armar la respuesta SAML.

Usar Keytool de Java


Los programadores de Java pueden crear el par de claves pública y privada y el certiAcado X.509
con keytool, una herramienta que puede encontrarse en el estándar JDK. Se trata de una
herramienta de gestión de claves y certiAcados que permite que los usuarios gestionen sus propios
pares de claves pública y privada, así como los certiAcados asociados, para utilizarlos en métodos
de autenticación que requieran Armas digitales. keytool almacena las claves y los certiAcados en
un almacén de claves que, en el caso de las implementaciones predeterminadas, es sencillamente
un archivo con extensión .keystore situado en el directorio principal del usuario. Las claves privadas
se protegen con contraseñas.

Crear pares de claves DSA


1. keytool -genkey -alias dsassokey -keyalg "DSA" -keysize 2048 -validity
180 -sigalg "SHA256withDSA"
2. keytool -export -alias dsassokey -file dsasso.cer

En el paso 1, se genera mediante el algoritmo DSA un par de claves pública y privada de 2048 bits
válido durante 180 días.

En el paso 2, se genera un certiAcado X.509 ("dsasso.cer") a partir de la clave pública. A


continuación, tienes que subir el archivo dsasso.cer a Google Workspace mediante el panel de
control.

Crear pares de claves RSA


1. keytool -genkey -alias rsassokey -keyalg "RSA" -keysize 2048 -validity
180
2. keytool -export -alias rsassokey -file rsasso.cer

En el paso 1, se genera mediante el algoritmo RSA un par de claves pública y privada de 2048 bits y
válido durante 180 días.

En el paso 2, se genera un certiAcado X.509 ("rsasso.cer") a partir de la clave pública. A


continuación, debes subir rsasso.cer a Google Workspace mediante el panel de control.
Usar Java Cryptography Architecture
Java Cryptography Architecture (JCA) ofrece clases e interfaces básicas para generar y manipular
las propiedades de seguridad. Este servicio incluye las partes de la API de seguridad del SDK de
Java 2 relacionadas con la criptografía. Con esta API, puedes generar fácilmente pares de claves
públicas y privadas con el algoritmo que quieras. A continuación se muestra un código de ejemplo
que crea claves DSA o RSA para utilizarlas con el servicio de SSO de Google Workspace.

Crear un par de claves pública y privada


import java.io.*;
import java.security.*;

public class KeyGenDSA {

public static void main(String[] args) {


try {
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
SecureRandom random = SecureRandom.getInstanceStrong();
keyGen.initialize(2048, random);

KeyPair pair = keyGen.generateKeyPair();


PrivateKey priv = pair.getPrivate();
PublicKey pub = pair.getPublic();

byte[] encPriv = priv.getEncoded();


FileOutputStream privfos = new
FileOutputStream("DSAPrivateKey.key");
privfos.write(encPriv);
privfos.close();

byte[] encPub = pub.getEncoded();


FileOutputStream pubfos = new
FileOutputStream("DSAPublicKey.key");
pubfos.write(encPub);
pubfos.close();

} catch (Exception e) {
e.printStackTrace();
}
}
}
En el código anterior, se utiliza KeyPairGenerator para crear un par de claves DSA. Las claves que se
generen tendrán un formato binario y cada una estará en su propio archivo. Una vez que tengas las
claves, podrás registrar la clave pública con Google Workspace y utilizar la clave privada para Armar
la respuesta SAML. Si quieres generar un par de claves RSA en lugar de DSA, sustituye "DSA" por
"RSA" en el código anterior.
Registrar un certificado o una clave pública con Google
Workspace
Generar las claves y los certiAcados es la parte más complicada: una vez que los tengas, los pasos
siguientes son muy sencillos. Para registrar tu certiAcado o tu clave pública con Google Workspace,
ve a la consola de administración e inicia sesión como administrador. Haz clic en Seguridad,
selecciona Con0gurar el inicio de sesión único (SSO) y, a continuación, rellena todos los campos
de la sección Con0gurar el SSO con un proveedor de identidades externo.

¿Necesitas más ayuda?


Prueba estos pasos:

Pregunta a la comunidad de ayuda


Recibe respuestas de los expertos

Ponte en contacto con nosotros


Danos más información para que podamos ayudarte

También podría gustarte