Las claves pública y privada forman una key pair vinculada matemáticamente que genera un algoritmo de cifrado asimétrico. Junto con un certificado SSL/TLS, permiten establecer una comunicación segura entre un cliente y un servidor: la clave pública cifra los datos y verifica las firmas, mientras que la clave privada descifra los datos y crea las firmas.
Este tema explica cómo funcionan estas claves en SSL/TLS y muestra cómo generar una clave privada y una solicitud de firma de certificado (CSR) mediante OpenSSL o keytool.
Conceptos clave
Clave pública y clave privada
La clave pública y la clave privada siempre se generan como un par inseparable:
Clave pública: se comparte de forma abierta. Cifra los datos enviados al propietario de la clave y verifica las firmas creadas con la clave privada.
Clave privada: se mantiene estrictamente confidencial. Descifra los datos cifrados con la clave pública y crea las firmas digitales que demuestran la identidad del remitente.
Mantener segura la clave privada es fundamental. Si se ve comprometida, todas las comunicaciones cifradas quedan en riesgo y el certificado asociado deja de ser utilizable.
Para obtener más información sobre cómo Certificate Management Service protege las claves privadas, consulte How does Certificate Management Service protect private keys?
Cómo funciona
SSL/TLS establece un canal seguro en cinco pasos. Los pasos 1 a 3 utilizan cifrado asimétrico (clave pública y privada), mientras que los pasos 4 y 5 cambian a un cifrado simétrico más rápido mediante una clave de sesión.
Presentación del certificado: el servidor envía su certificado SSL al cliente. El certificado contiene la clave pública del servidor, la información de identidad (nombre de dominio), una firma digital de la autoridad de certificación (CA) y el periodo de validez del certificado.
-
Verificación del certificado (lado del cliente): el cliente verifica la cadena de certificados en este orden: certificado del servidor → certificado intermedio → certificado raíz. La cadena se considera de confianza si se remonta a un certificado raíz presente en el almacén de confianza local del cliente. Además, el cliente comprueba el periodo de validez y confirma que el nombre de dominio coincide con el endpoint al que se accede.
NotaEste proceso depende del almacén de certificados raíz preinstalado en el sistema operativo o el navegador del cliente.
-
Prueba de la clave privada: el servidor demuestra que posee la clave privada correspondiente al certificado. El mecanismo depende del método de intercambio de claves utilizado:
Intercambio de claves
Cómo demuestra el servidor la posesión de la clave privada
RSA
Descifra el secreto pre-maestro enviado por el cliente
DH/ECDH
Firma el mensaje
ServerKeyExchangeTLS 1.3
Firma el mensaje
CertificateVerify Negociación de la clave de sesión: ambas partes derivan una clave de sesión idéntica a partir de la información intercambiada.
Comunicación cifrada: todos los datos posteriores se cifran con la clave de sesión mediante cifrado simétrico, lo que combina eficiencia y seguridad.
Generar una clave privada
Certificate Management Service requiere que las claves privadas usen el algoritmo RSA con una longitud mínima de 2048 bits.
Si compra un certificado a través de Certificate Management Service con CSR Generation establecido en Automatic, Certificate Management Service genera la key pair en su nombre. En ese caso, puede omitir la generación de la clave y la creación de la CSR.
Generar una nueva clave privada
-
Instale OpenSSL. Descargue el paquete de instalación desde el sitio web de OpenSSL. Utilice una versión estable y oficialmente compatible, como la 1.1.1 o la 3.x. Para comprobar la versión actual, ejecute:
openssl version -
Genere el archivo de clave privada. Los siguientes comandos crean una clave privada RSA con formato Privacy-Enhanced Mail (PEM) llamada
myprivate.pem. Ejecute uno de ellos según sus requisitos de seguridad:# 2048-bit key (minimum requirement) openssl genrsa -out myprivate.pem 2048 # 4096-bit key (stronger security) openssl genrsa -out myprivate.pem 4096 # 4096-bit key with AES-256 password protection (recommended for high-security environments) openssl genrsa -aes256 -out myprivate.pem 4096
Exportar una clave privada desde un Java Keystore (JKS)
Utilice este método cuando tenga una key pair en un archivo .jks (creado con keytool) y necesite exportarla en formato PEM; por ejemplo, para configurar Nginx, Apache o un CDN.
Usar la herramienta de conversión de formatos de Certificate Management Service
Certificate Management Service ofrece una herramienta en línea gratuita que convierte un almacén de claves JKS en archivos de clave y certificado con formato PEM en un solo paso. Consulte Convert the format of a certificate.
Usar la CLI de OpenSSL
-
Convierta el archivo JKS al formato PKCS12. La CLI de
keytoolno exporta claves privadas directamente a PEM. Primero convierta el archivo JKS al formato PKCS12 (.p12), que es más portable. Reemplacemydomainpor su alias real:keytool -importkeystore \ -srckeystore mydomain.jks \ -destkeystore mydomain.p12 \ -deststoretype PKCS12 \ -srcalias mydomain \ -destalias mydomainEl sistema le solicitará la contraseña del JKS de origen y una nueva contraseña para el archivo
.p12. -
Extraiga la clave privada con formato PEM. Use OpenSSL para extraer la clave privada del archivo
.p12. Se le pedirá la contraseña del archivo.p12que estableció en el paso anterior:-nodes: no cifra la clave privada de salida.-nocerts: genera únicamente la clave privada, sin incluir el certificado.
# Standard command openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem # If you get an "unsupported algorithm" error in OpenSSL 3.x, add -legacy # Note: -legacy enables deprecated encryption algorithms openssl pkcs12 -in mydomain.p12 -nodes -nocerts -out myprivate.pem -legacyIndicadores:
El archivo resultante myprivate.pem es el que necesita para la configuración del certificado.
Formatos de archivo de clave privada
Un archivo de clave privada PEM se presenta en uno de estos dos formatos:
PKCS#1
(Específico de RSA, definido por el estándar de criptografía RSA)
-----BEGIN RSA PRIVATE KEY-----
(Base64-encoded key content)
-----END RSA PRIVATE KEY-----
PKCS#8
(Independiente del algoritmo; admite RSA, ECC y otros algoritmos de clave privada)
-----BEGIN PRIVATE KEY-----
(Base64-encoded key content)
-----END PRIVATE KEY-----
Almacene el archivo de clave privada de forma segura. Si se pierde o se ve comprometido, el certificado asociado queda inutilizable y cualquier dato cifrado con la clave pública correspondiente corre peligro.
Crear una solicitud de firma de certificado (CSR)
Una CSR empaqueta su clave pública y la información de identidad para enviarla a una CA. Para enviar una CSR manualmente en Certificate Management Service, siga estos pasos:
-
Genere el archivo CSR con su clave privada.
# -key myprivate.pem Specifies the private key file generated earlier # -out mydomain.csr Specifies the output CSR filename openssl req -new -key myprivate.pem -out mydomain.csrEl comando solicita los siguientes datos: país, estado o provincia, ciudad, organización y Common Name. El Common Name debe coincidir exactamente con el nombre de dominio del certificado; por ejemplo,
www.aliyun.com. -
Envíe la CSR en Certificate Management Service. Al comprar, crear o solicitar un certificado, establezca CSR Generation en Manual y pegue el contenido de
mydomain.csr. Para obtener más detalles, consulte:
Pasos siguientes
Descubra cómo Certificate Management Service protege sus claves privadas: How does Certificate Management Service protect private keys?
Convierta un certificado existente a otro formato: Convert the format of a certificate