Geração de certificados por meio do Cert-Manager Integration
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:
- Na página de download da instância da ServiceNow, obtenha o gráfico do Helm ou o pacote zip do YAML.
- Personalize os arquivos
manager.yamlouvalues.yamlconforme 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. - Crie um segredo Kubernetes chamado
clusterissuer-servicenow-credentialscom o nome de usuário e a senha da instância.Comando de exemplo:- Crie um segredo Kubernetes chamado
clusterissuer-servicenow-credentialscom 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.
- Crie um segredo Kubernetes chamado
- 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 - (Opcional) Personalize quaisquer configurações adicionais nos arquivos para atender aos seus requisitos específicos.
- 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