Les instances ApsaraMQ for Kafka accessibles via Internet utilisent des certificats SSL pour chiffrer les communications entre les clients et les brokers. Par défaut, la taille de clé du certificat SSL est de 1 024 bits. Pour renforcer la sécurité, vous pouvez augmenter la taille de clé à 4 096 bits.
La mise à niveau s'effectue en deux phases : remplacez d'abord le certificat sur tous les clients, puis modifiez la taille de clé dans la console.
La modification de la taille de clé du certificat SSL sur la page des détails de l'instance dans la console ApsaraMQ for Kafka rend les clients existants indisponibles. Avant la mise à niveau, téléchargez le nouveau certificat comme décrit dans cette rubrique, mettez à jour les configurations de certificat des clients et redémarrez-les.
Les instances Serverless utilisent par défaut une taille de clé de 4 096 bits. Cette valeur ne peut pas être modifiée. Les instructions suivantes s'appliquent uniquement aux instances non Serverless.
Prérequis
Avant de commencer, assurez-vous d'avoir :
Une instance ApsaraMQ for Kafka avec accès Internet achetée et déployée, à l'état Running
Un accès à la console ApsaraMQ for Kafka
Fonctionnement
Lorsque vous activez l'accès Internet sur une instance ApsaraMQ for Kafka, le système initialise les ports liés au SSL et attribue un certificat SSL. Vous pouvez consulter la taille de clé actuelle dans la section Configurations de la page Instance Details.
Le passage de 1 024 bits à 4 096 bits implique deux phases :
Côté client : téléchargez un certificat de transition contenant à la fois les certificats 1 024 bits et 4 096 bits, déployez-le sur chaque client et redémarrez les clients.
Côté serveur : définissez le paramètre SSL Certificate Key Size (Bits) sur 4 096 dans la console.
Le certificat de transition (mix.4096.client.truststore.jks pour Java, mix-4096-ca-cert pour les autres langages) fonctionne avec les deux tailles de clé. Ainsi, les clients restent connectés, que la console affiche encore 1 024 ou soit déjà passée à 4 096.
Étape 1 : Télécharger le certificat SSL
Sélectionnez le fichier de certificat correspondant à votre état de déploiement et à votre langage de programmation.
Clients Java
|
État actuel |
Fichier de certificat |
Description |
|
Nouvelle instance (pas encore déployée) |
Certificat 4 096 bits uniquement |
|
|
Instance déployée avec une clé de 1 024 bits |
Certificat 1 024 bits |
|
|
Mise à niveau de 1 024 vers 4 096 bits |
Certificats 1 024 bits et 4 096 bits |
Clients non Java
|
État actuel |
Fichier de certificat |
Description |
|
Nouvelle instance (pas encore déployée) |
|
Certificat 4 096 bits uniquement |
|
Instance déployée avec une clé de 1 024 bits |
|
Certificat 1 024 bits |
|
Mise à niveau de 1 024 vers 4 096 bits |
|
Certificats 1 024 bits et 4 096 bits |
Pour les liens de téléchargement de certificats non Java, consultez la section « SDKs » dans la rubrique Overview.
Pour une mise à niveau de la taille de clé, utilisez le certificat mix. Il prend en charge les tailles de clé 1 024 bits et 4 096 bits, ce qui permet aux clients de rester connectés tout au long de la migration.
Étape 2 : Remplacer le certificat et redémarrer les clients
Copiez le fichier de certificat téléchargé dans le répertoire des certificats SSL de votre client.
-
Mettez à jour la configuration du client pour référencer le nouveau fichier de certificat. Clients Java : définissez la propriété
ssl.truststore.locationdans la configuration de votre client Kafka. Clients non Java : pointez vers le nouveau fichier de certificat CA. Par exemple, pour les clients Python utilisantconfluent-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', } Redémarrez le client pour charger le nouveau certificat.
Répétez les étapes 1 à 3 pour tous les clients qui se connectent à l'instance via Internet.
Vérifiez que chaque client peut produire et consommer des messages après le redémarrage. Confirmez que tous les clients fonctionnent avant de passer à l'étape 3.
Étape 3 : Modifier la taille de clé dans la console
Une fois que tous les clients utilisent le nouveau certificat :
Connectez-vous à la console ApsaraMQ for Kafka.
Ouvrez la page Instance Details de votre instance.
Dans la section Configuration Information, définissez la valeur de SSL Certificate Key Size (Bits) sur 4096. Pour des instructions détaillées, consultez la rubrique Modify message configurations.
Étape 4 : Vérifier la mise à jour
Sur la page Instance Details, confirmez que la valeur de SSL Certificate Key Size (Bits) est 4096 dans la section Configurations.
Vérifiez que tous les clients peuvent produire et consommer des messages sans erreur.
(Facultatif) Si vous avez utilisé le certificat de transition
mix, vous pouvez le remplacer par le certificatonly.4096.client.truststore.jks(Java) ouonly-4096-ca-cert(non Java) afin de supprimer l'ancien certificat 1 024 bits de vos clients.
Dépannage des échecs de connexion SSL
Échec du handshake
Si une erreur handshake failed se produit, ou une erreur telle que nodename nor servname provided, lors de la connexion à une instance ApsaraMQ for Kafka via SSL, procédez au dépannage comme suit :
Vérifiez que la taille de clé du certificat correspond à la configuration de l'instance. Sur la page Instance Details de la console ApsaraMQ for Kafka, vérifiez la valeur de SSL Certificate Key Size (Bits) dans la section Configurations et téléchargez le certificat CA correspondant à cette taille de clé.
-
Assurez-vous que le client approuve le certificat CA de l'instance ApsaraMQ for Kafka. Téléchargez le certificat CA depuis la console ou exécutez la commande suivante pour l'exporter :
openssl s_client -connect <endpoint>:9093 -showcerts
Échec de la vérification du certificat (incompatibilité de nom d'hôte)
Si une erreur certificate verify failed se produit, ou une erreur d'incompatibilité de nom d'hôte, lors de la connexion via SSL, cela signifie que l'endpoint SSL est une adresse IP tandis que le certificat de l'instance utilise le nom commun (CN) AliKafka. Par conséquent, l'adresse IP ne correspond pas au certificat.
Désactivez la vérification du nom d'hôte dans la configuration du client :
Clients Java (kafka-clients) : définissez
ssl.endpoint.identification.algorithmsur une chaîne vide.Clients Python (kafka-python) : définissez
ssl_check_hostname=False.Module Python ssl : définissez
context.check_hostname=False.
Pour Kafka Confluent, vous pouvez définir ssl.endpoint.identification.algorithm sur none.
La désactivation de la vérification du nom d'hôte réduit la sécurité. Dans les environnements de production, nous vous recommandons de configurer un certificat CA valide et une résolution DNS plutôt que de désactiver la vérification.