Las instancias de ApsaraMQ for Kafka con acceso a Internet usan certificados SSL para cifrar la comunicación entre clientes y brokers. De forma predeterminada, el tamaño de clave del certificado SSL es de 1,024 bits. Para reforzar la seguridad, actualice el tamaño de clave a 4,096 bits.
La actualización consta de dos fases: primero reemplace el certificado en todos los clientes y después cambie el tamaño de clave en la consola.
Si cambia el tamaño de clave del certificado SSL en la página de detalles de la instancia dentro de la consola de ApsaraMQ for Kafka, los clientes actuales dejarán de estar disponibles. Antes de actualizar, descargue el nuevo certificado tal como se describe en este tema, actualice las configuraciones de certificado de los clientes y reinicie los clientes.
Las instancias serverless usan un tamaño de clave de 4,096 bits de forma predeterminada. Este valor no se puede modificar. Las siguientes instrucciones aplican únicamente a instancias que no son serverless.
Requisitos previos
Antes de empezar, compruebe que cuenta con lo siguiente:
Una instancia de ApsaraMQ for Kafka con acceso a Internet, adquirida y desplegada, en estado Running
Acceso a la consola de ApsaraMQ for Kafka
Cómo funciona
Cuando habilita el acceso a Internet en una instancia de ApsaraMQ for Kafka, el sistema inicializa los puertos relacionados con SSL y asigna un certificado SSL. Consulte el tamaño de clave actual en la sección Configurations de la página Instance Details.
La actualización de 1,024 bits a 4,096 bits consta de dos fases:
En el lado del cliente: descargue un certificado de transición que contenga tanto el certificado de 1,024 bits como el de 4,096 bits. Despliéguelo en cada cliente y reinicie los clientes.
En el lado del servidor: cambie el parámetro SSL Certificate Key Size (Bits) en la consola a 4,096.
El certificado de transición (mix.4096.client.truststore.jks para Java, mix-4096-ca-cert para otros lenguajes) funciona con ambos tamaños de clave. Esto significa que los clientes mantienen la conexión sin importar si la consola aún muestra 1,024 o ya se cambió a 4,096.
Paso 1: Descargue el certificado SSL
Seleccione el archivo de certificado que corresponda al estado de su despliegue y a su lenguaje de programación.
Clientes Java
|
Current state |
Certificate file |
Description |
|
Instancia nueva (sin desplegar) |
Solo certificado de 4,096 bits |
|
|
Instancia desplegada con clave de 1,024 bits |
Certificado de 1,024 bits |
|
|
Actualización de 1,024 a 4,096 bits |
Certificados de 1,024 y 4,096 bits |
Clientes que no son Java
|
Current state |
Certificate file |
Description |
|
Instancia nueva (sin desplegar) |
|
Solo certificado de 4,096 bits |
|
Instancia desplegada con clave de 1,024 bits |
|
Certificado de 1,024 bits |
|
Actualización de 1,024 a 4,096 bits |
|
Certificados de 1,024 y 4,096 bits |
Para consultar los enlaces de descarga de certificados para lenguajes distintos de Java, consulte la sección "SDKs" en Overview.
Si va a actualizar el tamaño de clave, utilice el certificado mix. Admite claves de 1,024 y 4,096 bits, por lo que los clientes permanecen conectados durante toda la migración.
Paso 2: Reemplace el certificado y reinicie los clientes
Copie el archivo de certificado descargado al directorio de certificados SSL de su cliente.
-
Actualice la configuración del cliente para que apunte al nuevo archivo de certificado. Clientes Java: establezca la propiedad
ssl.truststore.locationen la configuración de su cliente Kafka. Clientes que no son Java: apunte al nuevo archivo de certificado CA. Por ejemplo, para clientes Python que usanconfluent-kafka:ssl.truststore.location=/path/to/mix.4096.client.truststore.jksconf = { 'bootstrap.servers': '<your-endpoint>', 'security.protocol': 'SSL', 'ssl.ca.location': '/path/to/mix-4096-ca-cert', } Reinicie el cliente para cargar el nuevo certificado.
Repita los pasos 1 a 3 en todos los clientes que se conecten a la instancia a través de Internet.
Compruebe que cada cliente pueda producir y consumir mensajes después de reiniciarse. Confirme que todos los clientes funcionen correctamente antes de continuar con el paso 3.
Paso 3: Cambie el tamaño de clave en la consola
Una vez que todos los clientes usen el nuevo certificado:
Inicie sesión en la consola de ApsaraMQ for Kafka.
Abra la página Instance Details de su instancia.
En la sección Configuration Information, cambie el valor de SSL Certificate Key Size (Bits) a 4096. Para obtener instrucciones detalladas, consulte Modify message configurations.
Paso 4: Compruebe la actualización
En la página Instance Details, confirme que el valor de SSL Certificate Key Size (Bits) sea 4096 dentro de la sección Configurations.
Compruebe que todos los clientes puedan producir y consumir mensajes sin errores.
(Opcional) Si utilizó el certificado de transición
mix, reemplácelo por el certificadoonly.4096.client.truststore.jks(Java) oonly-4096-ca-cert(no Java) para eliminar el certificado heredado de 1,024 bits de sus clientes.
Solución de problemas de conexión SSL con errores
Error en el protocolo de enlace
Si aparece el error handshake failed o un error como nodename nor servname provided al conectarse a una instancia de ApsaraMQ for Kafka mediante SSL, siga estos pasos para solucionarlo:
Compruebe que el tamaño de clave del certificado coincida con la configuración de la instancia. En la página Instance Details de la consola de ApsaraMQ for Kafka, revise el valor de SSL Certificate Key Size (Bits) en la sección Configurations y descargue el certificado CA que corresponda a ese tamaño de clave.
-
Asegúrese de que el cliente confíe en el certificado CA de la instancia de ApsaraMQ for Kafka. Descargue el certificado CA desde la consola o ejecute el siguiente comando para exportarlo:
openssl s_client -connect <endpoint>:9093 -showcerts
Error de verificación del certificado (el nombre de host no coincide)
Si aparece el error certificate verify failed o un error de coincidencia de nombre de host al conectarse mediante SSL, la causa es que el endpoint SSL es una dirección IP mientras que el certificado de la instancia usa el nombre común (CN) AliKafka. Como resultado, la dirección IP no coincide con el certificado.
Deshabilite la verificación del nombre de host en la configuración del cliente:
Clientes Java (kafka-clients): establezca
ssl.endpoint.identification.algorithmcomo una cadena vacía.Clientes Python (kafka-python): establezca
ssl_check_hostname=False.Módulo
sslde Python: establezcacontext.check_hostname=False.
Para Kafka Confluent, establezca ssl.endpoint.identification.algorithm en none.
Deshabilitar la verificación del nombre de host reduce la seguridad. En entornos de producción, se recomienda configurar un certificado CA válido y resolución DNS en lugar de deshabilitar esta verificación.