
Atualmente estou implementando umservidor Docker Registry privado nginx
configurado para encaminhar https
o tráfego com segurança para a instância do Docker Registry (ou seja docker-compose
) em execuçãoem uma rede privada (com DNS, DHCP configurado).
Eu tenho toda a configuração funcionando conforme o esperado, mas tive quecriar certificados autoassinadosjá que não tenho permissão para usar"Vamos criptografar"(requisito difícil). Implantei o .crt
arquivo /usr/local/share/ca-certificates
em todos os hosts Ubuntu da minha rede e atualizei o armazenamento de certificados (ou seja, via sudo update-ca-certificates -f
).
No entanto, mesmo que o certificado seja "confiável" (da etapa acima), o certificado ainda está registrado como "autoassinado" ea única maneira de fazer o Docker Registry funcionar totalmente é criando um arquivo, /etc/docker/daemon.json
, com o seguinte conteúdo (assumindo que minha instância do Docker Registry esteja em execução no registry
host do meu lan
domínio):
{
"insecure-registries" : [ "registry.lan:5000" ]
}
Isso faz com que algumas funcionalidades sejam interrompidas (ou seja, existem alguns plug-ins que não funcionarão se "registros inseguros" estiverem ativados).
Pergunta
Como posso configurar minha rede privada (ou seja, assumindo que ela nem esteja conectada à Internet na maior parte do tempo) para que todas as máquinas na rede "confiem totalmente" no certificado (ou seja, para que o certificado seja "confiável publicamente" entre os hosts em a rede local)?ou seja, qual comando posso executar ou arquivo de configuração posso ajustar?
Esta parece ser uma solução possível: criar uma chave de servidor CA plus na minha rede privada.
Obrigado.
Responder1
Não é suficiente adicionar seu certificado ao /usr/local/share/ca-certificates
. Você precisa ter certeza de que leu chmod para outros e também adicionar seu caminho relativo em /usr/local/share/ca-certificates
.
Digamos que seu certificado seja/usr/local/share/ca-certificates/self-signed/yourcert.crt
Você deveria editar/etc/ca-certificates.conf
editor sudo /etc/ca-certificates.conf
e adicione seu caminho relativo, relativo a /usr/local/share/ca-certificates/
para ser exato.
Então deveria ser algo como:
autoassinado/seucert.crt
Então corra
sudo update-ca-certificados
Você deverá ver 1 certificado adicionado na saída do comando acima.
Tenha em mente que este certificado será confiável apenas neste host específico. Você também precisa implantá-lo em seus contêineres do Docker se quiser que ele seja confiável internamente.