Geração de certificados por meio da integração Cert-Manager

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 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.

    Para obter informações sobre como criar um emissor externo, consulte Criação e implantação de emissor externo para gestão de certificados [KB1435392].

    Requisitos de implantação

    • Implante o cert-manager em seu ambiente Kubernetes. Atualize o manager.yaml com a URL da instância, grupo de responsáveis pelo certificado, responsável pelo 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 certificação são armazenados no cache JSON local e no UID de solicitação de certificado para a tabela 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 ao cache JSON local. Durante esse tempo, o Cert-manager tentará solicitar automaticamente o certificado.
    • Ao receber uma solicitação de certificado, o gerenciador de certificação verifica se há uma tarefa correspondente no cache JSON local. Se encontrado, ele pesquisará a mesma tarefa; caso contrário, ele consultará a instância em busca de registros da tabela Mapa de UID do emissor externo e preencherá 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 do certificado e o segredo correspondente em Kubernetes.

    Implantação do emissor externo da ServiceNow no Kubernetes

    A implantação do 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 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 a URL da instância e o grupo de proprietários do certificado.
    3. Crie um Kubernetes segredo chamado clusterissuer-servicenow-credentials com o nome de usuário e a senha da instância.
      Exemplo de comando:
      • Crie um Kubernetes segredo chamado clusterissuer-servicenow-credentials com o nome de usuário e a senha da instância. Exemplo de comando:
        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 todas as configurações adicionais nos arquivos para atender aos seus requisitos específicos.
    6. Certifique-se de que a implantação tenha sido bem-sucedida e que o emissor externo da ServiceNow esteja instalado e em execução.

    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
    • emissor : Issuer-ServiceNow
    • tipo: ClusterIssuer
    • IssuerRef: servicenow-issuer.servicenow.com

    Aqui está um exemplo de recurso de certificado:

    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

    Aplicar o recurso de certificação usando kubectl apply -f certificate_clusterissuer.yaml