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