make-ca-1.12

Introdução a make-ca

A Infraestrutura de Chave Pública (ICP) é um método para validar a autenticidade de uma entidade desconhecida ao longo de redes de comunicação não confiáveis. A ICP funciona estabelecendo uma cadeia de confiança, em vez de confiar explicitamente em cada dispositivo individual ou entidade. Para a finalidade de um certificado apresentado por uma entidade remota ser acreditado, esse certificado precisa apresentar uma cadeia completa de certificados que possa ser validada usando-se o certificado raiz de uma Autoridade Certificadora (AC) que é acreditada pela máquina local.

Estabelecer confiança com uma AC envolve validar coisas como endereço da companhia, propriedade, informação de contato, etc., e assegurar que a AC tenha seguido as melhores práticas, tais como se submeter a auditorias periódicas de segurança por investigadores(as) independentes e manter uma sempre disponível lista de revogação de certificado. Isso está bem fora do escopo do BLFS (como está para a maior parte das distribuições do Linux). A loja de certificado fornecida aqui é tomada a partir da Fundação Mozilla, que estabeleceu políticas de inclusão muito estritas descritas aqui.

Esse pacote é conhecido por construir e funcionar adequadamente usando uma plataforma LFS 11.3.

Informação do Pacote

  • Transferência (HTTP): https://github.com/lfs-book/make-ca/releases/download/v1.12/make-ca-1.12.tar.xz

  • Tamanho da transferência: 36 KB

  • Somas de verificação MD5 da transferência: 67e0b911e73a859fc326171c5153d455

  • Espaço em disco estimado exigido: 6,9 MB (com todas as dependências em tempo de execução)

  • Tempo de construção estimado: 0,1 UPC (com todas as dependências em tempo de execução)

Dependências do make-ca

Exigida

p11-kit-0.24.1 (exigido em tempo de execução para gerar lojas de certificado a partir de âncoras de confiança)

Opcional (tempo de execução)

nss-3.88.1 (para gerar um NSSDB compartilhado)

Observações de Usuário(a): https://wiki.linuxfromscratch.org/blfs/wiki/make-ca

Instalação do make-ca

O script make-ca baixará e processará os certificados incluídos no arquivo certdata.txt para uso como âncoras de confiança para o módulo de confiança p11-kit-0.24.1. Adicionalmente, gerará lojas de certificado do sistema usadas pelos aplicativos do BLFS (se os aplicativos recomendados e os opcionais estiverem presentes no sistema). Quaisquer certificados locais armazenados em /etc/ssl/local serão importados para ambos: as âncoras de confiança; e as lojas de certificado geradas (substituindo a confiança do Mozilla). Adicionalmente, quaisquer valores de confiança modificados serão copiados a partir das âncoras de confiança para /etc/ssl/local antes de quaisquer atualizações, preservando os valores de confiança personalizados que divergirem do Mozilla quando se usar o utilitário trust oriundo do p11-kit para operar sobre a loja de confiança.

Para instalar as várias lojas de certificados, primeiro instale o script make-ca no local correto. Como o(a) usuário(a) root:

make install &&
install -vdm755 /etc/ssl/local

Como o(a) usuário(a) root, depois de instalar o p11-kit-0.24.1, baixe o fonte do certificado e apronte para uso do sistema com o seguinte comando:

[Nota]

Nota

Se executar-se o script uma segunda vez com a mesma versão do certdata.txt, por exemplo, para atualizar as lojas quando o make-ca for atualizado; ou para acrescentar lojas adicionais conforme o software solicitante for instalado, [então] substitua a chave -g pela chave -r na linha de comando. Se empacotando, [então] execute make-ca --help para ver todas as opções de linha de comando disponíveis.

/usr/sbin/make-ca -g

Você deveria atualizar periodicamente a loja com o comando acima, seja manualmente, ou via um temporizador do systemd. Um temporizador está instalado em /usr/lib/systemd/system/update-pki.timer que, se habilitado, verificará as atualizações semanalmente. Execute os seguintes comandos, como o(a) usuário(a) root, para habilitar o temporizador do systemd:

systemctl enable update-pki.timer

Configurando make-ca

Para a maioria dos(as) usuários(as), nenhuma configuração adicional é necessária; entretanto, o arquivo certdata.txt padrão fornecido pelo "make-ca" é obtido a partir da ramificação "mozilla-release" e é modificado para fornecer uma revisão "Mercurial". Essa será a versão correta para a maior parte dos sistemas. Existem muitas outras variantes do arquivo disponíveis para uso que poderiam ser preferidas por uma razão ou por outra, incluindo os arquivos enviados com os produtos da "Mozilla" neste livro. "RedHat" e "OpenSUSE", por exemplo, usam a versão inclusa no nss-3.88.1. Transferências adicionais do(a) desenvolvedor(a) estão disponíveis nos links inclusos em /etc/make-ca/make-ca.conf.dist. Simplesmente copie o arquivo para /etc/make-ca.conf e edite conforme apropriado.

Acerca de Argumentos de Confiança

Existem três tipos de confiança que são reconhecidos pelo script make-ca, SSL/TLS, S/Mime e assinatura de código. Para o OpenSSL, esses são serverAuth; emailProtection; e codeSigning, respectivamente. Se um dos três argumentos de confiança for omitido, [então] o certificado nem é acreditado, nem é rejeitado para aquela função. Os clientes que usarem o OpenSSL ou o NSS encontrando esse certificado apresentarão um aviso para o(a) usuário(a). Os clientes usando o GnuTLS sem o suporte ao p11-kit não estão cientes dos certificados confiáveis. Para incluir essa AC nos arquivos ca-bundle.crt, email-ca-bundle.crt ou objsign-ca-bundle.crt (os pacotes legados do GnuTLS), precisa ter os argumentos confiáveis adequados.

Acrescentando Certificados Adicionais de AC

O diretório /etc/ssl/local está disponível para acrescentar certificados adicionais de AC à loja de confiança do sistema. Esse diretório também é usado para armazenar certificados que foram acrescentados a ou modificados na loja de confiança do sistema pelo p11-kit-0.24.1, de forma que os valores de confiança sejam mantidos ao longo de atualizações. Os arquivos nesse diretório precisam estar no formato de certificado confiável do OpenSSL. Os certificados importados usando o utilitário trust originário do p11-kit-0.24.1 utilizarão os valores Uso Estendido de Chave x509 para atribuir valores confiáveis padrão para as âncoras do sistema.

Se você precisar substituir os valores de confiança ou, do contrário, precisar criar um certificado de confiança do OpenSSL manualmente a partir de um arquivo codificado PEM comum, [então] você precisa acrescentar argumentos de confiança ao comando openssl e criar um certificado novo. Por exemplo, usando as raízes do CAcert, se você quiser confiar em ambos para todas as três funções, [então] os seguintes comandos criarão os certificados confiáveis do OpenSSL adequados (execute como o(a) usuário(a) root depois que o Wget-1.21.3 estiver instalado):

wget http://www.cacert.org/certs/root.crt &&
wget http://www.cacert.org/certs/class3.crt &&
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
       -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
        > /etc/ssl/local/CAcert_Class_1_root.pem &&
openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
        -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
        > /etc/ssl/local/CAcert_Class_3_root.pem &&
/usr/sbin/make-ca -r

Substituindo a Confiança do Mozilla

Ocasionalmente, possivelmente existam instâncias onde você não concorda com a inclusão do Mozilla de uma autoridade de certificação específica. Se você gostaria de substituir a confiança padrão de uma AC específica, [então] simplesmente crie uma cópia do certificado existente em /etc/ssl/local com argumentos de confiança diferentes. Por exemplo, se você gostaria de desconfiar do arquivo "Makebelieve_CA_Root", [então] execute os seguintes comandos:

openssl x509 -in /etc/ssl/certs/Makebelieve_CA_Root.pem \
            -text \
            -fingerprint \
             -setalias "Disabled Makebelieve CA Root" \
             -addreject serverAuth \
             -addreject emailProtection \
             -addreject codeSigning \
       > /etc/ssl/local/Disabled_Makebelieve_CA_Root.pem &&
/usr/sbin/make-ca -r

Usando o make-ca com o Python3

Quando o Python3 foi instalado no LFS ele incluiu o módulo pip3 com certificados fornecidos pelo módulo Certifi. Isso foi necessário, mas significa que, sempre que o pip3 for usado, ele poderá referenciar esses certificados, principalmente ao criar um ambiente virtual ou ao instalar um módulo com todas as dependências "wheel" dele de uma vez.

Geralmente considera-se que o(a) Administrador(a) do Sistema(a) deveria ser responsável por quais certificados estão disponíveis. Agora que make-ca-1.12 e p11-kit-0.24.1 foram instalados e make-ca foi configurado, é possível fazer com que pip3 use os certificados do sistema.

Os certificados fornecidos instalados no LFS são um instantâneo de quando a versão extraída do Certifi foi criada. Se você atualizar regularmente os certificados do sistema, [então] a versão fornecida se tornará desatualizada.

Para usar os certificados do sistema no Python3 você deveria configurar _PIP_STANDALONE_CERT para apontar para eles, por exemplo, para o "shell" bash:

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt
[Atenção]

Atenção

Se você tiver criado ambientes virtuais, por exemplo, ao testar módulos, e eles incluem os módulos Requests e Certifi em ~/.local/lib/python3.11/, então esses módulos locais serão usados em vez dos certificados do sistema, a menos que você remova os módulos locais.

Para usar os certificados do sistema no Python3 com os perfis BLFS, adicione a seguinte variável aos teus perfis de sistema ou pessoal:

mkdir -pv /etc/profile.d &&
cat > /etc/profile.d/pythoncerts.sh << "EOF"
# Inicia /etc/profile.d/pythoncerts.sh

export _PIP_STANDALONE_CERT=/etc/pki/tls/certs/ca-bundle.crt

# Termina /etc/profile.d/pythoncerts.sh
EOF

Conteúdo

Aplicativos Instalados: make-ca
Diretórios Instalados: /etc/ssl/{certs,local} e /etc/pki/{nssdb,anchors,tls/{certs,java}}

Descrições Curtas

make-ca

é um script de shell que adapta uma versão atual do certdata.txt e o apronta para uso como a loja de confiança do sistema