Instâncias do ApsaraMQ for Kafka com acesso à Internet usam certificados SSL para criptografar a comunicação entre cliente e broker. Por padrão, o tamanho da chave do certificado SSL é de 1.024 bits. Para aumentar a segurança, atualize o tamanho da chave para 4.096 bits.
A atualização ocorre em duas fases: primeiro, substitua o certificado em todos os clientes; depois, altere o tamanho da chave no console.
Instâncias Serverless usam um tamanho de chave de 4.096 bits por padrão. Não é possível alterar esse valor. As instruções a seguir aplicam-se apenas a instâncias não serverless.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do ApsaraMQ for Kafka com acesso à Internet adquirida e implantada, no estado Running
Acesso ao console do ApsaraMQ for Kafka
Como funciona
Ao ativar o acesso à Internet em uma instância do ApsaraMQ for Kafka, o sistema inicializa as portas relacionadas ao SSL e atribui um certificado SSL. Visualize o tamanho atual da chave na seção Configurations da página Instance Details.
A atualização de 1.024 bits para 4.096 bits envolve duas fases:
Lado do cliente -- Baixe um certificado de transição que contém os certificados de 1.024 e 4.096 bits, implante-o em cada cliente e reinicie-os.
Lado do servidor -- Altere o parâmetro SSL Certificate Key Size (Bits) no console para 4.096.
O certificado de transição (mix.4096.client.truststore.jks para Java, mix-4096-ca-cert para outras linguagens) funciona com ambos os tamanhos de chave. Assim, os clientes permanecem conectados independentemente de o console ainda exibir 1.024 ou já ter sido alterado para 4.096.
Etapa 1: Baixe o certificado SSL
Selecione o arquivo de certificado correspondente ao estado da sua implantação e à linguagem de programação utilizada.
Clientes Java
|
Estado atual |
Arquivo de certificado |
Descrição |
|
Nova instância (ainda não implantada) |
Apenas certificado de 4.096 bits |
|
|
Instância implantada com chave de 1.024 bits |
Certificado de 1.024 bits |
|
|
Atualização de 1.024 para 4.096 bits |
Certificados de 1.024 e 4.096 bits |
Clientes não Java
|
Estado atual |
Arquivo de certificado |
Descrição |
|
Nova instância (ainda não implantada) |
|
Apenas certificado de 4.096 bits |
|
Instância implantada com chave de 1.024 bits |
|
Certificado de 1.024 bits |
|
Atualização de 1.024 para 4.096 bits |
|
Certificados de 1.024 e 4.096 bits |
Para links de download de certificados não Java, consulte a seção "SDKs" em Overview.
Para atualizar o tamanho da chave, use o certificado mix. Ele suporta tamanhos de chave de 1.024 e 4.096 bits, permitindo que os clientes permaneçam conectados durante toda a migração.
Etapa 2: Substituir o certificado e reiniciar os clientes
Copie o arquivo de certificado baixado para o diretório de certificados SSL no seu cliente.
-
Atualize a configuração do cliente para referenciar o novo arquivo de certificado. Clientes Java -- Defina a propriedade
ssl.truststore.locationna configuração do seu cliente Kafka: Clientes não Java -- Aponte para o novo arquivo de certificado CA. Por exemplo, para clientes Python usandoconfluent-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 o cliente para carregar o novo certificado.
Repita as etapas de 1 a 3 para todos os clientes que se conectam à instância pela Internet.
Verifique se cada cliente consegue produzir e consumir mensagens após a reinicialização. Confirme que todos os clientes estão funcionando antes de prosseguir para a Etapa 3.
Etapa 3: Modifique o tamanho da chave no console
Depois que todos os clientes estiverem usando o novo certificado:
Faça login no console do ApsaraMQ for Kafka.
Abra a página Instance Details da sua instância.
Na seção Configuration Information, altere o valor de SSL Certificate Key Size (Bits) para 4096. Para instruções detalhadas, consulte Modify message configurations.
Etapa 4: Verifique a atualização
Na página Instance Details, confirme se o valor de SSL Certificate Key Size (Bits) é 4096 na seção Configurations.
Verifique se todos os clientes conseguem produzir e consumir mensagens sem erros.
(Opcional) Caso tenha usado o certificado de transição
mix, substitua-o pelo certificadoonly.4096.client.truststore.jks(Java) ouonly-4096-ca-cert(não Java) para remover o certificado legado de 1.024 bits dos seus clientes.
Solucionar falhas de conexão SSL
Falha no handshake
Se ocorrer um erro handshake failed ou um erro como nodename nor servname provided ao conectar-se a uma instância do ApsaraMQ for Kafka via SSL, solucione o problema da seguinte forma:
Verifique se o tamanho da chave do certificado corresponde à configuração da instância. Na página Instance Details do console do ApsaraMQ for Kafka, verifique o valor de SSL Certificate Key Size (Bits) na seção Configurations e baixe o certificado CA correspondente a esse tamanho de chave.
-
Certifique-se de que o cliente confia no certificado CA da instância do ApsaraMQ for Kafka. Baixe o certificado CA no console ou execute o comando a seguir para exportá-lo:
openssl s_client -connect <endpoint>:9093 -showcerts
Falha na verificação do certificado (incompatibilidade de hostname)
Se ocorrer um erro certificate verify failed ou um erro de incompatibilidade de hostname ao conectar-se via SSL, a causa é o endpoint SSL ser um endereço IP, enquanto o certificado da instância usa o nome comum (CN) AliKafka. Consequentemente, o endereço IP não corresponde ao certificado.
Desative a verificação de hostname na configuração do cliente:
Clientes Java (kafka-clients): Defina
ssl.endpoint.identification.algorithmcomo uma string vazia.Clientes Python (kafka-python): Defina
ssl_check_hostname=False.Módulo ssl do Python: Defina
context.check_hostname=False.
O confluent-kafka (librdkafka) não suporta a definição direta de ssl.endpoint.identification.algorithm. Em vez disso, use um contexto SSL personalizado para desativar a verificação de hostname.