Após a sessão de depuração por meio dos comentários da pergunta original, descobrimos qual é o problema.
Ao usar um certificado autoassinado, o encanto do apache2 tinha um bug no qual ele geraria um certificado com apenas 30 dias de validade.
O que aconteceu é que expirou. Isso foi corrigido em uma versão mais recente do charme, então o que faremos é atualizar para isso e acionar uma nova geração de certificados.
Siga estas etapas para atualizar o encanto e gerar novamente o certificado:
- Executar
juju ssh apache2/0 'sudo rm -f /etc/ssl/certs/apache2.cert /etc/ssl/private/apache2.key /etc/ssl/certs/landscape_server_ca.crt'
. - Executar
juju upgrade-charm apache2
. Isso irá atualizar o charme, e o novo charme, uma vez que não há certificados (excluídos no primeiro passo), irá gerar um novo par. - Assista a saída de
juju debug-log
até que ela se acalme. - Execute
juju ssh apache2/0 'sudo service apache2 restart'
(arquivarei um bug sobre esta etapa: não deve ser necessário, mas está agora)
Agora precisamos informar os clientes sobre esse novo certificado. Isso é um pouco mais complicado, porque os clientes estão rodando em outro ambiente de juju que existe na unidade landscape / 0, semelhante ao início. Siga estas etapas:
- Pegue o novo certificado:
juju scp apache2/0:/etc/ssl/certs/apache2.cert .
- Verifique se as permissões são 0644:
chmod 0644 apache2.cert
- Verifique se expira daqui a 10 anos:
openssl x509 -in apache2.cert -noout -enddate
- Faça o upload para landscape / 0:
juju scp apache2.cert landscape/0:/tmp
- Faça login no landscape / 0:
juju ssh landscape/0
- Alterar o shell do usuário do paisagem:
sudo chsh -s /bin/bash landscape
- Torne-se paisagem:
sudo -u landscape -i
- Aponte para o ambiente cloud juju:
export JUJU_HOME=/var/lib/landscape/juju-homes/$(ls -1t /var/lib/landscape/juju-homes/|head -n 1)
- Execute isto para confirmar que o juju está funcionando nesse ambiente:
juju status
. Você deve ver muitos serviços do OpenStack - Diga ao cliente-paisagem sobre o novo certificado:
juju set landscape-client ssl-public-key="base64:$(cat /tmp/apache2.cert|base64)"
- Assista a saída de
juju debug-log
até que ela se acalme - Reinicie o cliente paisagem em todos os lugares:
juju run --service landscape-client 'sudo service landscape-client restart'
- Se o comando acima falhar com algo sobre os serviços subordinados não serem suportados, execute isso:
juju run --all 'sudo service landscape-client restart'
Você pode fazer o login em um cliente e ver o arquivo broker.log, ver se o erro SSL persiste.