Adicionar um certificado SSL/TLS ao cluster do Kubernetes

Adicionar Um Certificado Ssl Tls Ao Cluster Do Kubernetes



Os certificados SSL são usados ​​para proteger o aplicativo feito no Kubernetes para segurança futura. Tomemos outro certificado seguro, TLS, que contém uma chave privada muito segura. Os certificados são criados com certificados:  API K8r.io. Vamos ensinar sobre configuração de certificado SSL com a ajuda de exemplos detalhados. Vamos começar com o certificado SSL no Kubernetes. Os certificados SSL são muito importantes para os navegadores. O navegador, com a ajuda de certificados SSL e TLS, cria uma conexão segura com os serviços do Kubernetes.

Pré-requisitos:

Todo usuário deve ter a versão mais recente do Ubuntu em seu sistema. O usuário do sistema operacional Windows instala uma caixa virtual e adiciona Ubuntu ou Linux virtualmente ao sistema. Os usuários devem estar familiarizados com Kubernetes, a linha de comando kubectl, pods e clusters e conhecer o DNS do cluster para entender melhor este tópico.







Vamos dar uma breve olhada na configuração do certificado SSL no Kubernetes, dividindo todo o procedimento em diferentes etapas.



Etapa 1: Iniciar o Painel de Controle do Kubernetes

Queremos um ambiente em nosso aplicativo onde possamos executar comandos do Kubernetes para realizar tarefas do Kubernetes. Como resultado, o Kubernetes nos fornece um contêiner local chamado “minikube”. A cada inicialização do aplicativo Kubernetes, iniciaremos um minikube no Kubernetes, que é basicamente um terminal, necessário para executar os comandos do Kubernetes. Nesta etapa, executamos o comando para inicializar o Minikube, que é:



> iniciar minikube

Quando executamos este comando em nosso terminal do sistema, a execução do comando começa pressionando o botão Enter. O comando nos mostra um resultado de captura de tela anexado abaixo em retorno.





Etapa 2: gerar solicitação de assinatura de certificado

Depois de criar um cluster usando o Minikube, agora queremos criar uma solicitação de assinatura de certificado. Em troca dessa ação, executamos o comando para assinar a solicitação do certificado e gerar uma chave privada.



> gato << EOF | genkey cfssl - | cfssljson -apenas servidor

Após a execução da consulta, a solicitação é gerada com sucesso com a chave privada. O resultado está anexado acima como uma captura de tela.

Etapa 3: criar um manifesto de solicitação de assinatura de certificado no arquivo YAML

Nesta etapa, criaremos um manifesto de arquivo YAML para criar um CSR no Kubernetes. Executamos o comando abaixo:

> gato << EOF | kubectl apply -f

Após a execução deste comando, um arquivo YAML é criado com sucesso. E nós o enviamos para o servidor da API, conforme mostrado na captura de tela em anexo.

Etapa 4: obter o status da solicitação de assinatura do certificado

Nesta etapa, veremos o status do CSR conforme visto por meio da API. Podemos executar o comando fornecido para recuperar o status da solicitação de certificado.

> kubectl descreve csv my-svc.my-namespace

Quando o comando é executado, o status do CSR é exibido na saída, conforme mostrado na captura de tela anexada. O status do CSR é “pendente” e esse status vem da API. O nome do arquivo é my-svc. my-namespace e anotações, solicitando usuário e assunto, nomes alternativos de assunto com nomes DNS e endereços IP, eventos etc. estão incluídos na descrição do CSR. O status é “pendente”, o que significa que o certificado CSR ainda não foi aprovado.

Etapa 5:  Aprovação dos certificados CSR

O status do certificado CSR ainda está pendente. Portanto, neste caso, enviaremos uma consulta à API do Kubernetes para aprovar o certificado CSR. Executamos este comando para aprovação:

> certificado kubectl aprovar my-svc .my-namespace

O comando mostra a saída após a execução. Uma pessoa autorizada, como a administração do Kubernetes, aprova o certificado CSR. Como somos usuários autorizados, criamos arquivos YAML. Como resultado, o certificado CSR é facilmente aprovado usando o comando, conforme mostrado na captura de tela abaixo para esclarecimento.

my-svc.my-namespace foi aprovado com sucesso por meio da API certificates.k8s.io.

Etapa 6: buscar o certificado CSR no Kubernetes

Agora estamos esperando para ver se o certificado CSR foi aprovado. Assim, executaremos o comando para obter uma lista de todos os certificados CSR atualmente ativos no sistema. Execute o comando:

> kubectl obter csr

O nome do certificado CSR aprovado no Kubernetes é mostrado na captura de tela em anexo. Este comando retorna o nome, idade, nome do signatário, solicitante, duração solicitada e condição do certificado CSR.

Etapa 7: Assine o certificado criando autoridade

Nesta etapa, veremos como os certificados são assinados no Kubernetes. O certificado SSL foi aprovado, mas ainda não foi assinado. O nome do signatário aparece no certificado no Kubernetes. Executamos o comando por meio do qual o signatário solicitado assina o certificado. O comando é:

> gato << EOF | cfssl genart -initca - | cfssljson – bare ca

{

'CN' : 'Meu exemplo de signatário' ,
'chave' : {
'algo' : 'rsa' ,
'Tamanho' : 2048
}


}

EOF

O comando é executado para assinar o certificado digitalmente. O signatário assina os certificados solicitados e atualiza o status da API com o comando 'certificado SSL'. Criamos um certificado de assinatura executando o comando acima e o resultado é mostrado na captura de tela anexada. Um número de série exclusivo foi usado com sucesso para assinar o certificado.

Etapa 8:  Crie um arquivo JSON para emitir um certificado

Após a assinatura do certificado, criamos um arquivo JSON a partir do qual emitimos um certificado. Criaremos um arquivo JSON executando o seguinte comando com a captura de tela anexada:

> nano arquivo de assinatura.json

Depois que o comando é executado, o arquivo JSON é criado, conforme pode ser visto na captura de tela abaixo.

Etapa 9:  Use o arquivo Server-Signing-config.json

Nesta etapa, utilizamos o arquivo server-signing-config que está em JSON para assinar e emitir os certificados. Executamos o comando para assinatura de certificado com um arquivo de chave privada.

> kubectl get csr my-svc.my-namespace -o jsonpath =' { .spec.request } ' | \ base64 --decodificar | \ sinal cfssl -que ca.pem -ca ca-chave ca-chave.pem -config server-signing-config.json | \cfssljson -apenas ca-assinado-servidor

Após este comando, o certificado que já está definido no arquivo json é assinado. O número de série deste CSR é gerado. Aqui, geramos um arquivo de certificado de servidor assinado chamado “ca-signed-server.pem”.

Etapa 10: upload de certificado assinado no objeto API

Nesta etapa, carregamos o certificado assinado para o status de API pendente que vimos acima. O comando para upload é:

> kubectl get csr my-svc.my-namespace -o json | \  jq '.status.certificate = '

'
$ ( base64 ca-signed-server.pem | tr -d '\n' ) ''' | \

> kubectl substituir --cru / apis / certificados.k8s.io / v1 / solicitações de assinatura de certificado / namespace my-svc.my-   / status -f -

Quando este comando é executado, o certificado assinado é carregado com sucesso sempre que o CSR é aprovado. A captura de tela anexada acima nos mostra um formato JSON que carrega o certificado assinado como objetos API.

Etapa 11: inscrever certificados aprovados no Kubernetes

Executamos novamente o comando para mostrar os certificados aprovados no Kubernetes.

> kubectl obter csr

O certificado foi aprovado e emitido com sucesso, conforme mostrado na captura de tela acima.

Passo 12: Salve o Certificado no Sistema

Nesta etapa, aprenderemos como baixar o certificado assinado e utilizá-lo com sucesso em nosso sistema. Implantamos facilmente o certificado no servidor. O comando é:

> kubectl get csr my-svc.my-namespace -o jsonpath = '{.status.certificate}' \

| base64 --decodificar > servidor.crt

Etapa 13: preencher o certificado

Nesta etapa, aprenderemos como preencher o certificado no servidor para que possamos usá-lo facilmente para segurança na web. Executamos o comando:

Kalsoom @ Kalsoom > kubectl cria servidor tls secreto --cert servidor.crt --chave server-key.pem

A captura de tela anexada acima nos mostra que o servidor TLS seguro ou secreto foi criado com sucesso com o nome cert server.cr e tendo a chave privada server-key.pem.

Etapa 14: configurar o mapa do certificado

Nesta etapa, configuraremos o certificado para garantir que seja um certificado de serviço seguro executando o comando abaixo:

> kubectl criar configmap exemplo-servindo-ca --De arquivo ca.crt=ca.pem

Conforme mostrado na captura de tela anexada, o mapa de configuração/exemplo-servindo-ca foi criado com êxito no Kubernetes para uma conexão segura no servidor da Web.

Conclusão

Os certificados SSL são usados ​​para fornecer segurança aos aplicativos Kubernetes no servidor web. Explicamos cada passo em detalhes para sua compreensão. Você também pode executar os mesmos comandos em seu aplicativo Kubernetes para instalar o certificado SSL.