Geração de certificados por meio do Cert-Manager Integration

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Solicite um certificado por meio do Kubernetes cert-manager usando o ServiceNow emissor externo (sn-external-issuer) e salve o certificado e suas informações relacionadas com segurança no cluster Kubernetes como um segredo. Em Kubernetes, um segredo é um objeto que permite armazenar e gerenciar informações confidenciais, como senhas, chaves de API e certificados.

    Requisitos de implantação

    • Implante o gerenciador de certificados em seu ambiente Kubernetes. Atualize manager.yaml com URL da instância, grupo do proprietário do certificado, proprietário do certificado, ambiente e acompanhamento de renovação.
    • Implante o emissor externo ServiceNow (sn-external-issuer) em seu ambiente Kubernetes. Crie um Kubernetes segredo clusterissuer-servicenow-credentials com o nome de usuário e a senha da instância, garantindo que o usuário tenha as funções necessárias para solicitar um certificado.

    ServiceNow Emissor externo (sn-external-issuer)

    • Os emissores externos expandem a funcionalidade do cert-manager para emitir certificados por meio de APIs e serviços não essenciais.
    • O ServiceNow emissor externo é uma implementação específica da ServiceNow de um emissor externo.
    • Quando uma nova tarefa de certificação é criada, seu UID de solicitação de certificado e SYS ID da tarefa de certificado são armazenados no cache JSON local e no UID de solicitação de certificado para a tabela de mapa de tarefa na instância.
    • O ServiceNow emissor externo pesquisa a instância para monitorar o status da tarefa de certificação.
    • Se a tarefa de certificação estiver no estado Trabalho em andamento, seu UID de solicitação de certificado e SYS ID da tarefa de certificado serão adicionados à tabela Mapa de UID do emissor externo na instância e no cache JSON local. Durante esse tempo, o Cert-manager tenta solicitar o certificado automaticamente.
    • Ao receber uma solicitação de certificado, o gerenciador de certificados verifica se há uma tarefa correspondente no cache JSON local. Se encontrado, ele pesquisa a mesma tarefa; caso contrário, ele consulta a instância em busca de registros da tabela Mapa de UID do emissor externo e preenche o cache JSON local.
    • Depois que a tarefa é marcada como concluída e o certificado é gerado, o ServiceNow emissor externo envia outra solicitação para a instância, baixa o anexo do certificado e atualiza o recurso de certificado e o segredo correspondente em Kubernetes.

    Implantação do emissor externo da ServiceNow no Kubernetes

    Implantar o emissor externo da ServiceNow em Kubernetes envolve as seguintes etapas:
    1. Na página de download da instância da ServiceNow, obtenha o gráfico do Helm ou o pacote zip do YAML.
    2. Personalize os arquivos manager.yaml ou values.yaml conforme necessário para seu caso de uso específico. Esses arquivos podem incluir informações essenciais, como o URL da instância e o grupo do proprietário do certificado.
    3. Crie um segredo Kubernetes chamado clusterissuer-servicenow-credentials com o nome de usuário e a senha da instância.
      Comando de exemplo:
      • Crie um segredo Kubernetes chamado clusterissuer-servicenow-credentials com o nome de usuário e a senha da instância. Comando de exemplo:
        kubectl create secret generic clusterissuer-servicenow-credentials
                      --from-literal=user=<user_name> --from-literal=password=<password> -n
                    system
      • Certifique-se de que o usuário tenha as funções necessárias para solicitar certificados.
    4. Execute os seguintes comandos para implantação.
      kubectl create ns system
      kubectl apply -f crd
      kubectl apply -f rbac
      kubectl apply -f issuers
      kubectl apply -f manager/manager.yaml
    5. (Opcional) Personalize quaisquer configurações adicionais nos arquivos para atender aos seus requisitos específicos.
    6. Certifique-se de que a implantação seja bem-sucedida e que o emissor externo da ServiceNow esteja instalado e funcionando.

    Solicitar novo fluxo de certificação

    Após a implantação, envie um recurso de certificado com as seguintes informações em um arquivo chamado certificate_clusterissuer.yaml.

    • IssuerRef : clusterissuer-servicenow
    • Issuer : Issuer-ServiceNow
    • tipo : ClusterIssuer
    • IssuerRef : servicenow-issuer.servicenow.com

    Veja um exemplo de recurso de certificação:

    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
    name: certificate-by-clusterissuer
    spec:
    commonName: certificate-by-clusterissuer.servicenow.com
    secretName: certificate-by-clusterissuer
    dnsNames:
    - servicenow.com
    - foo.servicenow.com
    issuerRef:
    name: clusterissuer-servicenow
    group: servicenow-issuer.servicenow.com
    kind: ClusterIssuer

    Aplique o recurso de certificado usando kubectl apply -f certificate_clusterissuer.yaml