Evitar e resolver conflitos de políticas
Uma política no serviço de autoridade certificadora pode ser uma política de emissão de um pool de ACs ou um modelo de certificado. As políticas de emissão de certificados definem as regras gerais de um pool de ACs, enquanto os modelos de certificados fornecem instruções mais específicas para diferentes tipos de certificados. Para saber mais sobre os controles de política, consulte Sobre os controles de política. Uma política tem duas partes principais:
Valores de referência: os valores de referência (também conhecidos como valores predefinidos) são configurações obrigatórias para todos os certificados emitidos por uma política específica. Por exemplo, você pode ter uma política que diz: "Todos os certificados emitidos sob esta política precisam ter a flag
digitalSignature
ativada na extensãokeyUsage
". Isso garante que todos os certificados emitidos por essa política possam ser usados para assinaturas digitais.Restrições de extensão: restrinjam quais extensões podem ser adicionadas a certificados fora da própria política. Por exemplo, uma política pode declarar: "Apenas a extensão AIA-OCSP pode ser adicionada a certificados fora desta política". Isso significa que, se alguém tentar adicionar outras extensões (como o nome alternativo do assunto) usando uma política diferente ou diretamente na solicitação de certificado, essas extensões serão ignoradas.
Quando você solicita um certificado, o pool de ACs usa o modelo especificado para criá-lo. No entanto, a política de emissão anexada ao pool de ACs também avalia a solicitação de acordo com as próprias regras. Conflitos ocorrem quando as configurações em um modelo de certificado contradizem as configurações na política de emissão de certificados adicionadas ao pool de ACs, porque ambas tentam aplicar regras no mesmo certificado. Confira alguns cenários possíveis:
Definições de extensão sobrepostas
Os conflitos ocorrem quando a mesma extensão é definida nos valores de referência das duas
políticas. Por exemplo, se você definir a mesma extensão keyUsage
na política de emissão do pool de AC
e no modelo de certificado, o serviço de autoridade certificadora
vai detectar isso como um conflito, mesmo que você especifique partes diferentes da extensão
em cada lugar.
Exemplo:
- Política de emissão: requer
digitalSignature: true
na extensãokeyUsage
. - Modelo de certificado: requer
keyEncipherment: true
na extensãokeyUsage
.
Isso ainda é considerado um conflito porque o serviço de autoridade certificadora considera a extensão inteira como uma única unidade e verifica se ela está definida nos dois lugares, não os valores específicos dentro da extensão.
Para evitar conflitos, defina cada extensão apenas uma vez, seja na política de emissão do pool de ACs ou no modelo de certificado, mas não nos dois. Isso garante clareza e evita falhas inesperadas na emissão de certificados.
Restrições de extensão e valores de referência conflitantes
Um conflito de política ocorre quando as restrições de extensão de uma política conflitam com os valores de referência de outra. Isso acontece nos seguintes casos:
- Uma política restringe ou proíbe uma extensão: isso pode ser feito por meio de uma exclusão geral de todas as extensões ou uma lista específica de extensões permitidas que não inclui a extensão em questão.
- Outra política exige a mesma extensão: isso significa que a segunda política tem um valor de referência definido para essa extensão específica.
Exemplo:
- Política de emissão: tem restrições de extensão que permitem apenas a extensão
keyUsage
. - Modelo de certificado: requer a extensão
certificatePolicies
nos valores de referência.
Isso cria um conflito porque a política de emissão proíbe efetivamente a
extensão certificatePolicies
, enquanto o modelo de certificado a exige.
Ao definir suas políticas, considere cuidadosamente os valores de referência e as restrições de extensão para garantir que elas funcionem juntas. Evite situações em que uma política restrinja uma extensão que outra política exija. Isso evita conflitos e garante a emissão tranquila de certificados.
Conflitos de expressão da linguagem de expressão comum (CEL)
Se você estiver usando a Common Expression Language (CEL) para controle detalhado, expressões conflitantes no modelo de certificado e na política de emissão podem causar conflitos.
Esses conflitos impedem a emissão de certificados pelo pool de ACs. Por exemplo,
você pode ter uma expressão que exige que um nome de domínio termine em .example.com
e
outra que exige que ele termine em .example.net
. Como essas duas expressões CEL
colocam restrições diferentes no mesmo campo, todas as solicitações de emissão de certificado falham.
Se você estiver usando políticas de emissão de certificados e modelos de certificado, recomendamos que verifique se as expressões CEL não entram em conflito.
Em todos esses cenários, a API Service CA retorna um erro de argumento inválido.
Resolver conflitos de políticas
Quando a API de serviço da AC detecta um conflito de política, ela retorna um erro de argumento inválido, e a solicitação de certificado falha. Para conferir e resolver os conflitos de políticas, siga estas etapas:
- Clique no link Solução de problemas de política de emissão que aparece com a mensagem de erro. Uma página de solução de problemas aparece, onde você pode comparar os valores de referência e as restrições de extensão na política de emissão do pool de ACs com os valores de referência e as restrições de extensão no modelo de certificado. Os conflitos de política estão destacados.
- Acesse o pool de AC ou o modelo de certificado para atualizar os valores em conflito e resolver o conflito.
Depois que o conflito for resolvido, envie a solicitação de certificado novamente.