AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1178042
Accepted
Alexey Malev
Alexey Malev
Asked: 2025-04-02 03:00:00 +0800 CST2025-04-02 03:00:00 +0800 CST 2025-04-02 03:00:00 +0800 CST

CA multinível começando com certificado autoassinado: falha na validação de níveis mais profundos

  • 772

Criei o CA da seguinte forma:

  1. Certificado autoassinado com uma chave privada, root-ca.cer
  2. Outro certificado, assinado com root-ca.cer, seu nome é admin-ca.cer
  3. Certificado de cliente assinado com admin-ca.cer, seu nome é client.cer

openssl verifyadmin-ca.cer contra root-ca.cer passa, mas client.cer contra admin-ca.cer falha no nível 1.

Acho que se eu adicionar root-ca.cer a certificados confiáveis ​​no meu SO, isso resolveria o problema, mas se possível, eu gostaria de evitar isso. Em vez disso, posso construir um client.cerde tal forma que inclua toda a cadeia até root-ca.cer?

Se isso for importante, o propósito de client.ceré ser usado como certificado de cliente ao conectar por SSL ao meu servidor. Um host virtual usa root-ca.cercomo CA, outro admin-ca.cer- e esse não funciona.

ssl-certificate
  • 2 2 respostas
  • 119 Views

2 respostas

  • Voted
  1. Best Answer
    grawity
    2025-04-02T17:17:21+08:002025-04-02T17:17:21+08:00

    Acho que se eu adicionar root-ca.cer a certificados confiáveis ​​no meu SO, isso resolveria o problema, mas, se possível, gostaria de evitar isso. Em vez disso, posso construir um client.cer de forma que ele inclua toda a cadeia até root-ca.cer?

    Não. Você pode incluir root-ca.cer, mas ele não tem confiança quando é fornecido pelo peer. A ação de adicionar a CA raiz a certificados confiáveis ​​é o que a torna confiável (uma "âncora de confiança").

    Normalmente, o arquivo PEM do certificado deve incluir todos os certificados começando com a folha (usuário ou servidor) – então seu emissor anexado abaixo, então o emissor daquele, etc, em teoria terminando com a raiz. Mas, na verdade, incluir a raiz não terá efeito na maioria dos casos se essa raiz ainda não for conhecida e confiável, então o arquivo deve ter apenas "client + admin-ca".

    cat client.crt admin-ca.crt > client_full.crt
    

    Quanto à sua configuração de vhost, com o tratamento de um intermediário diretamente como uma âncora de confiança: o OpenSSL moderno suporta isso (com o PARTIAL_CHAINsinalizador), não me lembro bem se o OpenSSL 1.x mais antigo suportava, mas lembro que "bastante recentemente" ele não era bem suportado pelo OpenSSL de forma alguma – eles levaram até a expiração da raiz com assinatura cruzada do LetsEncrypt para finalmente implementar isso. Discussão relacionada.

    (LE estava em uma situação semelhante com certificados de servidor, onde os servidores eram frequentemente configurados para enviar uma cadeia "servidor + LE + ISRG(DST-cross-signed)" e o OpenSSL mais antigo não conseguia ser convencido a confiar em "ISRG" como uma CA raiz.)

    Parece que o Apache não define o X509_V_FLAG_PARTIAL_CHAINsinalizador ao verificar certificados de cliente, o que significa que ele não habilita o suporte do OpenSSL para usar um intermediário como uma CA confiável, então você provavelmente precisará ter a mesma CA raiz configurada para todos os vhosts e usar uma abordagem diferente para autorização de administrador.

    • 1
  2. hardillb
    2025-04-02T14:54:37+08:002025-04-02T14:54:37+08:00

    Você precisa fornecer a cadeia de confiança completa ao verificar o certificado do cliente.

    Então você precisa fornecer ao servidor web um arquivo com o certificado intermediário e o certificado raiz (com o certificado intermediário primeiro no arquivo)

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve