Introdução
Este documento descreve como solucionar problemas e corrigir o erro de importação da autoridade de certificação (CA) em dispositivos Firepower Threat Defense gerenciados pelo FMC.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Public Key Infrastructure (PKI)
- Firepower Management Center (FMC)
- Firepower Threat Defense (FTD)
- OpenSSL
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software:
- MacOS x 10.14.6
- CVP 6.4
- OpenSSL
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Informações de Apoio
Observação: em dispositivos gerenciados por FTD, o certificado CA é necessário antes que a CSR (Certificate Signing Request, Solicitação de assinatura de certificado) seja gerada.
- Se o CSR for gerado em um servidor externo (como o Windows Server ou o OpenSSL), o método de registro manual falhará, pois o FTD não oferece suporte ao registro manual de chave. Um método diferente deve ser usado, como PKCS12.
Problema
Neste cenário específico, o FMC exibe uma cruz vermelha no status do certificado da CA (como mostrado na imagem), que indica que a inscrição do certificado falhou ao instalar o certificado da CA com a mensagem: "Falha ao configurar o certificado da CA". Esse erro é normalmente visto quando o certificado não foi empacotado corretamente ou o arquivo PKCS12 não contém o certificado do emissor correto, como mostrado na imagem.
Observação: nas versões mais recentes do FMC, esse problema foi resolvido para corresponder ao comportamento do ASA que cria um ponto de confiança adicional com a CA raiz incluída na cadeia de confiança do certificado .pfx.
Solução
Etapa 1. Localize o certificado .pfx
Obtenha o certificado pfx que foi registrado na GUI do FMC, salve-o e localize o arquivo no Mac Terminal (CLI).
ls
Etapa 2. Extraia os certificados e a chave do arquivo .pfx
Extraia o certificado do cliente (não certificados CA) do arquivo pfx (a senha usada para gerar o arquivo .pfx é necessária).
openssl pkcs12 -in cert.pfx -clcerts -nokeys -out id.pem
exportação de identidade
Extraia os certificados CA (não os certificados do cliente).
openssl pkcs12 -in cert.pfx -cacerts -nokeys -out certs.pem
exportação de cacerts
Extraia a chave privada do arquivo pfx (a mesma senha da Etapa 2 é necessária).
openssl pkcs12 -in cert.pfx -nocerts -out key.pem
exportação de chave
Agora existem quatro arquivos: cert.pfx (o pacote pfx original), certs.pem (os certificados CA), id.pem (certificado do cliente) e key.pem (a chave privada).
ls após exportação
Etapa 3. Verificar os certificados em um editor de texto
Verifique os certificados com o uso de um editor de texto (por exemplo: nano certs.pem).
Para este cenário específico, certs.pem continha somente a sub CA (CA emissora).
Começando na etapa 5, este artigo aborda o procedimento para o cenário em que o arquivo certs.pem contém 2 certificados (uma CA raiz e uma sub CA).
exibição de certificados
Etapa 4. Verifique a chave privada em um Bloco de notas
Verifique o conteúdo do arquivo key.pem com o uso de um editor de texto (por exemplo: nano certs.pem).
Etapa 5. Dividir os certificados CA
Caso o arquivo certs.pem tenha 2 certificados (1 CA raiz e 1 sub CA), a CA raiz precisa ser removida da cadeia de confiança para poder importar o certificado formatado em pfx no FMC, deixando apenas a sub CA na cadeia para fins de validação.
Divida o certs.pem em vários arquivos, o próximo comando renomeia os certs como cacert-XX.
split -p "-----BEGIN CERTIFICATE-----" certs.pem cacert-
divisões após divisão
Adicione a extensão .pem a esses novos arquivos com o comando descrito abaixo.
for i in cacert-*;do mv "$i" "$i.pem";done
script de renomeação
Examine os dois novos arquivos e determine qual deles contém a CA raiz e qual contém a sub CA com os comandos descritos.
Primeiro, localize o emissor do arquivo id.pem (que é o certificado de identidade).
openssl x509 -in id.pem -issuer -noout
exibição do emissor
Agora, localize o assunto dos dois arquivos cacert- (certificados CA).
openssl x509 -in cacert-aa.pem -subject -noout
openssl x509 -in cacert-ab.pem -subject -noout
verificação de assunto
O arquivo cacert que corresponde ao Assunto com o Emissor do arquivo id.pem (como mostrado nas imagens anteriores) é a Sub CA que é usada mais tarde para criar o certificado PFX.
Excluir o arquivo cacert que não tem o Assunto correspondente. Nesse caso, esse certificado era cacert-aa.pem.
rm -f cacert-aa.pem
Etapa 6. Mesclar os certificados em um arquivo PKCS12
Mescle o certificado da sub CA (nesse caso, o nome era cacert-ab.pem) com o certificado de ID (id.pem) e a chave privada (key.pem) em um novo arquivo pfx. Você deve proteger este arquivo com uma senha. Se necessário, altere o nome do arquivo cacert-ab.pem para corresponder ao seu arquivo.
openssl pkcs12 -export -in id.pem -certfile cacert-ab.pem -inkey key.pem -out new-cert.pfx
pfx-creation
Passo 7. Importe o arquivo PKCS12 no FMC
No FMC, navegue até Device > Certificates e importe o certificado para o firewall desejado conforme mostrado na imagem.
registro de certificado
Insira um nome para o novo certificado.
Inscrição
Adicione o novo certificado e aguarde o processo de inscrição implantar o novo certificado no FTD.
new-cert
O novo certificado deve estar visível sem uma cruz vermelha no campo CA.
Verificar
Use esta seção para confirmar se a sua configuração funciona corretamente.
No Windows, você pode encontrar um problema em que o SO exibe a cadeia inteira para o certificado, mesmo que o arquivo .pfx contenha apenas o certificado de ID, caso ele tenha a cadeia subCA, CA em seu armazenamento.
Para verificar a lista de certificados em um arquivo .pfx, ferramentas como certutil ou openssl podem ser usadas.
certutil -dump cert.pfx
O certutil é um utilitário de linha de comando que fornece a lista de certificados em um arquivo .pfx. Você deve ver toda a cadeia com ID, SubCA, CA incluídos (se houver).
Como alternativa, você pode usar um comando openssl, como mostrado no comando abaixo.
openssl pkcs12 -info -in cert.pfx
Para verificar o status do certificado junto com as informações de CA e ID, você pode selecionar os ícones e confirmar se ele foi importado com êxito: