Apt com certificado de cliente e HTTPS

3

Eu tenho uma configuração do repositório apt (privada) em um servidor. Estou permitindo apenas o acesso a este repositório por SSL e somente com um certificado de cliente. Eu testei a conexão usando o curl:

$ curl --cacert /opt/CA.crt --cert /opt/user.crt --key /opt/user.key

link O conteúdo é baixado como esperado.

Eu criei um arquivo em /etc/apt/apt.conf.d/45example-com com

Debug::Acquire::https "true";

Acquire::https::example.com {
    Verify-Peer "false";
    Verify-Host "false";

    CaInfo "/opt/CA.crt";

    SslCert "/opt/user.crt";
    SslKey  "/opt/user.key";
};

Eu adicionei um arquivo em /etc/apt/sources.list.d/example.com.list com:

  

deb link lúcido principal

Parece haver um problema com o certificado de CA, quando tento uma atualização recebo o seguinte:

> apt-get update
> * Connected to example.com (8.0.0.8) port 443 (#0)
> * found 1 certificates in /opt/CA.crt
> * error reading X.509 key or certificate file
> * Closing connection #0

Os logs do servidor em example.com mostram que nenhuma solicitação chegou lá, então acho que o apt-get está falhando antes de tentar enviar a solicitação (que corresponde ao que o log diz).

Eu tive dificuldade em encontrar qualquer documentação sobre o apt-get com o ssl nas interwebs, e nem consegui encontrar o código-fonte.

Alguém tem alguma ideia?

    
por davidls 25.05.2017 / 23:29

1 resposta

1

Isso acontece principalmente com um problema de permissão de diretório, o apt-get é muito consciente sobre o que a permissão está definida para chaves e arquivo de certificado, então a configuração de um mero 777 ou 644 nunca funcionaria.

As etapas descritas no link foram muito úteis para restringir esse problema.

Eu fiz os seguintes passos para resolver isso,

  1. adicione o usuário _apt ao grupo ssl-cert

~# usermod -G ssl-cert _apt

  1. Altere o diretório group of certs

~# chgrp ssl-cert /opt/CA.crt /opt/user.crt /opt/user.key

  1. Corrigir as permissões de arquivo

~# chmod 655 /opt/CA.crt /opt/user.crt /opt/user.key

Além disso, se isso não funcionar para você, você pode su as _apt e tentar ler seus arquivos de certificados e chaves, se puder, então apt com cert de cliente deve funcionar como esperado.

Só para garantir que você esteja usando um certificado autoassinado, certifique-se de executar

~# sudo update-ca-certificates

depois que você moveu seu certificado ca / usr / local / share / ca-certificates /

    
por davidls 26.05.2017 / 19:34