Dockerfile separação de interesses para um servidor apache httpd seguro em relação a arquivos de certificação SSL

5

Problema:

Em uma solução não-docker, os certificados SSL podem estar localizados em / etc / pki / CA / .... e com referências a estes em arquivos /etc/httpd/conf.d/*.conf. Como esses certificados SSL devem ser gerenciados / colocados / usados em uma imagem de encaixe para um servidor apache httpd seguro e não fazer parte da imagem de encaixe?

Meta:

Crie uma imagem do docker para um servidor apache httpd seguro usando os certificados SSL fornecidos.

Idéias para resolver isso:

Os volumes do Docker podem resolvê-lo montando os certificados do host na imagem usando docker run -v /HOST/SSL/PATH:/CONTAINER/SSL/PATH , que pode ser referenciado a partir da imagem.

Este é o caminho a seguir ou esta questão pode ser resolvida de outra forma?

    
por Dev Dev 20.11.2014 / 13:43

2 respostas

2

Você também pode criar um volume de dados nomeado da seguinte maneira. Vou usar um diretório chamado / usr / local / apache / SSL neste exemplo.

  1. Crie um diretório / usr / local / apache / SSL vazio em seu contêiner do apache e confirme
  2. Inicialize um novo contêiner base para seu volume de dados e crie o mesmo diretório vazio / usr / local / apache / SSL (talvez seja necessário criar / usr / local / apache primeiro)
  3. Confirme o contêiner criado na etapa 2: docker commit CONTAINER_ID data / apachessl: latest)
  4. Crie o contêiner de volume de dados nomeado: docker run --name = DATAmyApacheSSLCerts -v / usr / local / apache / dados SSL / apachessl true
  5. Copie seu certificado SSL para / usr / local / apache / SSL usando um "contêiner descartável" para colocá-los lá: docker run -it --rm = true --volumes-from = DATAmyApacheSSLCerts APACHE_CONTAINER / bin / bash
  6. Aumente sua imagem "verdadeira" do apache, mas monte o volume de dados adicionando --volumes-from = DATAmyApacheSSLCerts ao seu comando de execução para a imagem do apache

Agora, todas as alterações feitas no diretório / usr / local / apache / SSL persistirão até que você exclua a instância DATAmyApacheSSLCerts.

Imagens Busybox geram grandes volumes de dados devido ao seu tamanho extremamente pequeno.

Você provavelmente desejará ajustar seu volume de dados e adicionar seu diretório conf, para que as alterações persistam, mas não alterem a imagem base. Apenas crie o diretório conf em sua imagem de dados, copie os arquivos de uma instalação do apache base e adicione outro sinalizador -v para o diretório conf.

** OBSERVAÇÃO: você precisa ter um diretório na sua imagem principal que corresponda ao que está sendo compartilhado no seu volume de dados.

    
por 20.11.2014 / 19:55
0

Se você não quiser usá-los como parte da imagem do docker, um volume montando-os a partir do host é, na verdade, um bom caminho a seguir.

    
por 20.11.2014 / 17:54