Adicione um certificado TLS personalizado
Você pode remover o certificado TLS autoassinado existente e substituí-lo por um certificado TLS assinado por uma autoridade de certificação (CA).
-
Cluster do Kubernetes com Astra Control Center instalado
-
Acesso administrativo a um shell de comando no cluster para executar
kubectl
comandos -
Arquivos de chave privada e certificado da CA
Remova o certificado autoassinado
Remova o certificado TLS autoassinado existente.
-
Usando SSH, faça login no cluster do Kubernetes que hospeda o Astra Control Center como usuário administrativo.
-
Localize o segredo TLS associado ao certificado atual usando o seguinte comando, substituindo
<ACC-deployment-namespace>
pelo namespace de implantação do Astra Control Center:kubectl get certificate -n <ACC-deployment-namespace>
-
Exclua o segredo e o certificado atualmente instalados usando os seguintes comandos:
kubectl delete cert cert-manager-certificates -n <ACC-deployment-namespace> kubectl delete secret secure-testing-cert -n <ACC-deployment-namespace>
Adicione um novo certificado
Adicione um novo certificado TLS assinado por uma CA.
-
Use o comando a seguir para criar o novo segredo TLS com a chave privada e os arquivos de certificado da CA, substituindo os argumentos entre colchetes> pelas informações apropriadas:
kubectl create secret tls <secret-name> --key <private-key-filename> --cert <certificate-filename> -n <ACC-deployment-namespace>
-
Use o comando e exemplo a seguir para editar o arquivo CRD (Custom Resource Definition) do cluster e altere o
spec.selfSigned
valor paraspec.ca.secretName
se referir ao segredo TLS criado anteriormente:kubectl edit clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace> .... #spec: # selfSigned: {} spec: ca: secretName: <secret-name>
-
Use o comando e exemplo de saída a seguir para validar se as alterações estão corretas e o cluster está pronto para validar certificados, substituindo
<ACC-deployment-namespace>
pelo namespace de implantação do Astra Control Center:kubectl describe clusterissuers.cert-manager.io/cert-manager-certificates -n <ACC-deployment-namespace> .... Status: Conditions: Last Transition Time: 2021-07-01T23:50:27Z Message: Signing CA verified Reason: KeyPairVerified Status: True Type: Ready Events: <none>
-
Crie o
certificate.yaml
arquivo usando o exemplo a seguir, substituindo os valores de espaço reservado entre colchetes> por informações apropriadas:apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: <certificate-name> namespace: <ACC-deployment-namespace> spec: secretName: <certificate-secret-name> duration: 2160h # 90d renewBefore: 360h # 15d dnsNames: - <astra.dnsname.example.com> #Replace with the correct Astra Control Center DNS address issuerRef: kind: ClusterIssuer name: cert-manager-certificates
-
Crie o certificado usando o seguinte comando:
kubectl apply -f certificate.yaml
-
Usando o comando a seguir e exemplo de saída, valide que o certificado foi criado corretamente e com os argumentos especificados durante a criação (como nome, duração, prazo de renovação e nomes DNS).
kubectl describe certificate -n <ACC-deployment-namespace> .... Spec: Dns Names: astra.example.com Duration: 125h0m0s Issuer Ref: Kind: ClusterIssuer Name: cert-manager-certificates Renew Before: 61h0m0s Secret Name: <certificate-secret-name> Status: Conditions: Last Transition Time: 2021-07-02T00:45:41Z Message: Certificate is up to date and has not expired Reason: Ready Status: True Type: Ready Not After: 2021-07-07T05:45:41Z Not Before: 2021-07-02T00:45:41Z Renewal Time: 2021-07-04T16:45:41Z Revision: 1 Events: <none>
-
Edite a opção TLS de CRD de entrada para apontar para o novo segredo de certificado usando o comando e o exemplo a seguir, substituindo os valores de espaço reservado entre colchetes> por informações apropriadas:
kubectl edit ingressroutes.traefik.containo.us -n <ACC-deployment-namespace> .... # tls: # options: # name: default # secretName: secure-testing-cert # store: # name: default tls: options: name: default secretName: <certificate-secret-name> store: name: default
-
Usando um navegador da Web, navegue até o endereço IP de implantação do Astra Control Center.
-
Verifique se os detalhes do certificado correspondem aos detalhes do certificado que você instalou.
-
Exporte o certificado e importe o resultado para o gerenciador de certificados no navegador da Web.