Ir para o conteúdo

Ativar HTTPS

Porque o HTTPS conta

Os navegadores como o Chrome exigem que o Drovio Server esteja acessível em HTTPS para que um utilizador possa partilhar o seu microfone ou a sua webcam a partir do cliente web.

Passos

  1. Obtenha junto da sua autoridade de certificação um certificado, um certificado intermédio e uma chave privada, em .crt e .key ou em .pem. Chamam-se drovioserver.crt, ca.crt e drovioserver.key nos comandos que se seguem.

  2. Na máquina onde o Drovio Server está implantado, execute os comandos seguintes. Substitua eUv4ffT4 por uma palavra-passe à sua escolha e your_hostname pelo nome de anfitrião para o qual o certificado foi emitido. O primeiro comando elimina o arquivo de chaves existente para que a importação parta de um ficheiro limpo; guarde-o primeiro se contar para si. Não se trata do arquivo SAML, que é um ficheiro distinto designado por users.auth.saml.keystore.

    rm /etc/drovio-server/keystore.jks
    
    openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key \
      -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4
    
    keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 \
      -destkeystore /etc/drovio-server/keystore.jks \
      -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 \
      -alias your_hostname
    

    Elimine C:\ProgramData\Drovio\Drovio Server\keystore.jks, depois:

    openssl pkcs12 -export -in drovioserver.crt -inkey drovioserver.key ^
      -certfile ca.crt -out pkcs2.p12 -name your_hostname -password pass:eUv4ffT4
    
    keytool -importkeystore -deststorepass eUv4ffT4 -destkeypass eUv4ffT4 ^
      -destkeystore "C:\ProgramData\Drovio\Drovio Server\keystore.jks" ^
      -srckeystore pkcs2.p12 -srcstoretype PKCS12 -srcstorepass eUv4ffT4 ^
      -alias your_hostname
    

    Ferramentas em Windows

    • Descarregue os binários OpenSSL, por exemplo a partir de https://indy.fulgan.com/SSL/.
    • O comando keytool encontra-se na pasta bin do JRE Java, já instalado em C:\Program Files\Java\ com o Drovio Server.
  3. Altere os campos seguintes no ficheiro de configuração, ou diretamente a partir do painel de administração, na secção http:

    "tls": true,
    "keystore": "/etc/drovio-server/keystore.jks",
    "keystore_password": "eUv4ffT4",
    "https_port": 443
    

    Preencher https_port tem a sua importância: ativar apenas o TLS deixa o servidor à escuta na sua porta predefinida, 8090.

    A palavra-passe do arquivo é guardada em claro

    O settings.conf contém agora um segredo. Certifique-se de que o ficheiro só é legível pela conta que executa o Drovio Server.

  4. Reinicie o serviço Drovio Server. Ao contrário da maior parte da configuração, tudo o que define o escutador HTTP é lido uma única vez no arranque, sendo portanto necessário um reinício aqui. Ver Iniciar e parar o serviço para a sua plataforma.

  5. Verifique o resultado a partir de outra máquina:

    openssl s_client -connect your_hostname:443 -showcerts </dev/null
    

    A saída deve mostrar o seu certificado e o certificado intermédio. Um intermédio em falta é o erro mais frequente: alguns navegadores aceitarão mesmo assim a ligação onde a aplicação Drovio a recusará.

Renovar o certificado

O arquivo contém uma cópia do certificado, não uma referência para ele: um certificado renovado deve, portanto, ser reimportado. Repita o passo 2 de cada vez, o que acontece a cada 90 dias com o Let's Encrypt.

Em Linux, envie SIGUSR2 ao Drovio Server para o aplicar: o arquivo é relido a partir do disco e o certificado é substituído no escutador em curso, sem perder uma única ligação:

systemctl kill --signal=SIGUSR2 drovio-server

A linha de registo SSL certificate has been reloaded confirma-o. Uma falha é assinalada por SSL certificate reloading has failed, e o certificado anterior mantém-se em serviço.

Automatizar a renovação

A renovação torna-se assim inteiramente automatizável: faça executar o passo 2 pelo hook de implantação do seu cliente ACME, depois envie o sinal. Nenhum reinício, nenhuma janela de manutenção.

Windows

Os sinais não são geridos em Windows. Aplicar aí um certificado renovado impõe reiniciar o serviço.

Protocolos e suites de cifra

O TLS 1.2 e o TLS 1.3 estão ativados por predefinição. Para os restringir, ou para fixar uma lista de suites de cifra, utilize http.tls_protocols e http.tls_cipher_suites.