ApsaraDB RDS for MySQL admite tanto certificados administrados por Alibaba Cloud como certificados personalizados para el cifrado SSL. Este tema describe cómo generar un certificado personalizado con OpenSSL y configurarlo en su instancia de RDS.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
-
OpenSSL instalado
Linux: OpenSSL viene preinstalado. No se requiere ninguna acción.
Windows: Descargue e instale OpenSSL desde slproweb.com.
-
Una instancia de RDS que cumpla con los requisitos de versión:
Edition
Supported MySQL versions
RDS High-availability Edition
MySQL 8.4, 8.0, 5.7 o 5.6
RDS Cluster Edition
MySQL 8.4, 8.0 o 5.7
RDS Basic Edition
MySQL 8.4, 8.0 o 5.7
(Obligatorio solo para el cifrado SSL forzoso) La instancia ejecuta MySQL 8.4, 8.0 o 5.7, en cualquiera de las ediciones anteriores, con una versión menor del motor 20241130 o posterior.
Notas de uso
Habilitar SSL incrementa el uso de CPU y las latencias de lectura y escritura.
Después de habilitar SSL, cierre las conexiones existentes y vuelva a conectarse para que el cifrado surta efecto.
Configurar o modificar un certificado personalizado, o deshabilitar SSL, provoca un reinicio de aproximadamente 3 minutos. Realice estas operaciones fuera del horario pico.
Cuando el cifrado SSL forzoso está habilitado, solo se aceptan conexiones cifradas con SSL. Las conexiones sin SSL se rechazan.
Paso 1: Generar un certificado personalizado
No agregue una contraseña a la clave privada. Una clave privada protegida con contraseña impide que se habilite SSL.
Los siguientes comandos utilizan la sintaxis de CentOS. En Windows, ejecute los mismos comandos de openssl, pero copie los archivos y edite el contenido manualmente en lugar de usar cp y vim.
-
Genere un certificado de CA autofirmado (
server-ca.crt) y su clave privada (server-ca.key). El valor-daysestablece el periodo de validez del certificado. Configure este valor según su política de rotación (por ejemplo, 365 días para una renovación anual).openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-ca" -
Genere una solicitud de firma de certificado (CSR) (
server.csr) y una clave privada del servidor (server.key). Reemplacerm-bpxxxxx.mysql.rds.aliyuncs.comcon el endpoint que desea proteger. Para encontrar su endpoint, consulte Visualización y gestión de endpoints y puertos de instancias. Un certificado personalizado protege un único endpoint.Parameter
Description
Example
Country Name
Código de país ISO de dos letras
CN
State or Province Name
Provincia
ZheJiang
Locality Name
Ciudad
HangZhou
Organization Name
Nombre de la empresa
Alibaba
Organizational Unit Name
Nombre del departamento
Aliyun
Common Name
Definido en openssl.cnf; dejar en blanco
—
Email Address
Dejar en blanco
—
A challenge password
Dejar en blanco
—
An optional company name
Dejar en blanco
—
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=rm-bpxxxxx.mysql.rds.aliyuncs.com"Cuando se le solicite, configure los campos opcionales de la solicitud de firma de certificado (CSR):
-
Firme la CSR con el certificado de CA para generar el certificado del servidor (
server.crt).openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt -
Verifique los archivos generados al ejecutar
ls:File
Content
server.crtCertificado del servidor
server.keyClave privada del certificado del servidor
server-ca.crtCertificado de CA autofirmado
server-ca.keyClave privada del certificado de CA autofirmado
# ls server-ca.crt server-ca.key ca.srl server.crt server.csr server.key
Paso 2: Cargar el certificado y habilitar SSL
Después de configurar el certificado personalizado, el estado de la instancia cambia a Modifying SSL Settings durante aproximadamente 3 minutos. Espere hasta que el estado vuelva a ser Running antes de continuar.
Inicie sesión en la consola de ApsaraDB RDS. En la página Instances, seleccione la región donde reside su instancia y luego haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Data Security. En la página que aparece, haga clic en la pestaña SSL.
Haga clic en Custom Certificate y luego en el interruptor junto a Disabled.
-
En el cuadro de diálogo que aparece, configure los siguientes parámetros y haga clic en OK.
Parameter
Description
Server Certificate
Pegue el contenido completo de
server.crt, desde-----BEGIN CERTIFICATE-----hasta-----END CERTIFICATE-----.Private key of server certificate
Pegue el contenido completo de
server.key, desde-----BEGIN PRIVATE KEY-----hasta-----END PRIVATE KEY-----.Forceful Encryption
Habilite esta opción para permitir solo conexiones cifradas con SSL. Disponible únicamente en MySQL 8.4, 8.0 o 5.7 con versión menor del motor 20241130 o posterior.
Paso 3: Conectarse a la instancia mediante SSL
Puede conectarse a la instancia de RDS mediante SSL. Para obtener más información, consulte Conexión a una instancia de ApsaraDB RDS for MySQL mediante SSL.
Paso 4: (Opcional) Actualizar el certificado personalizado
Actualizar el certificado provoca un reinicio, excepto en MySQL 8.0. Realice esta operación fuera del horario pico.
En la pestaña SSL, haga clic en Update SSL. En el cuadro de diálogo que aparece, pegue el contenido actualizado para Server Certificate y Private key of server certificate, y luego haga clic en OK.
Paso 5: (Opcional) Deshabilitar el cifrado SSL
Deshabilitar SSL provoca un reinicio. Realice esta operación fuera del horario pico.
En la pestaña SSL, haga clic en el interruptor junto a Enabled.
Preguntas frecuentes
¿Qué debo hacer si mi certificado personalizado está por caducar?
El periodo de validez de un certificado personalizado se define mediante el valor -days que estableció al generarlo. El sistema envía una notificación antes de la caducidad. Cuando reciba la notificación, se recomienda actualizar el periodo de validez del certificado lo antes posible para evitar impactos en sus cargas de trabajo.