Geração de certificados por meio da integração do Cert-Manager
Solicite um certificado por meio de Kubernetes cert-manager usando ServiceNow Emissor externo (sn-external-emitor) e salve o certificado e suas informações relacionadas com segurança no Kubernetes cluster como 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 cert-manager em seu Kubernetes ambiente. Atualização yaml Com URL da instância, Grupo do proprietário do certificado, Proprietário do certificado, Ambiente e Acompanhamento de renovação.
- Implantar o. ServiceNow Emissor externo (sn-external-issuer) em seu Kubernetes ambiente. Crie um Kubernetes segredo clusterissuer-servicenow-credentialscom 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 de gerenciador de certificação para emitir certificados por meio de APIs e serviços não essenciais.
- . ServiceNow O emissor externo é uma implementação específica da ServiceNow de um emissor externo.
- Quando uma nova tarefa de certificado é criada, o UID de solicitação de certificado e o SYS ID da tarefa de certificado são armazenados no cache JSON local e na tabela UID de solicitação de certificado para mapa de tarefa na instância.
- . ServiceNow O emissor externo pesquisa a instância para monitorar o status da tarefa de certificado.
- Se a tarefa de certificado estiver no Trabalho em andamento O UID da solicitação de certificado e o SYS ID da tarefa de certificado são adicionados à tabela de mapa de UID do emissor externo na instância e no cache JSON local. Durante esse tempo, o Cert-manager tenta solicitar automaticamente o certificado.
- Ao receber uma solicitação de certificado, o Cert-manager verifica se há uma tarefa correspondente no cache JSON local. Se encontrado, ele pesquisa a mesma tarefa; caso contrário, consulta a instância em busca de registros da tabela de 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 O 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.
Implantando o emissor externo da ServiceNow em Kubernetes
- Na página de download da instância da ServiceNow, obtenha o gráfico Helm ou o pacote zip YAML.
- Personalize o.
yamlouvalores.yamlarquivos 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. - Crie um Kubernetes segredo nomeado
clusterisser-secenow-credentialscom o nome de usuário e a senha da instância.Comando de exemplo:- Crie um Kubernetes segredo nomeado
clusterisser-secenow-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 Kubernetes segredo nomeado
- 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 seja bem-sucedida e que o Emissor externo da ServiceNow esteja ativo e em execução.
Solicitar novo fluxo de certificado
Após a implantação, envie um recurso de certificado com as seguintes informações em um arquivo chamado certificate_clusterisser.yaml .
- IssuerRef: Clusterisser-seceNow
- emissor: emissor-servicenow
- Tipo: ClusterIssuer
- IssuerRef: servicenow-issuer.servicenow.com
Este é 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
Aplique o recurso de certificado usando kubectl aplicar -f certificate_clusterisser.yaml