Vai al contenuto

Attivare HTTPS

Perché HTTPS conta

I browser come Chrome esigono che Drovio Server sia accessibile in HTTPS perché un utente possa condividere il proprio microfono o la propria webcam dal client web.

Passaggi

  1. Procuratevi presso la vostra autorità di certificazione un certificato, un certificato intermedio e una chiave privata, in .crt e .key oppure in .pem. Nei comandi che seguono sono chiamati drovioserver.crt, ca.crt e drovioserver.key.

  2. Sulla macchina dove Drovio Server è distribuito, eseguite i comandi seguenti. Sostituite eUv4ffT4 con una password di vostra scelta e your_hostname con il nome host per il quale il certificato è stato emesso. Il primo comando elimina il keystore esistente affinché l'importazione parta da un file pulito; fatene prima una copia di sicurezza se conta per voi. Non si tratta del keystore SAML, che è un file distinto designato da 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
    

    Eliminate C:\ProgramData\Drovio\Drovio Server\keystore.jks, poi:

    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
    

    Strumenti su Windows

    • Scaricate i binari OpenSSL, per esempio da https://indy.fulgan.com/SSL/.
    • Il comando keytool si trova nella cartella bin del JRE Java, già installato in C:\Program Files\Java\ insieme a Drovio Server.
  3. Modificate i campi seguenti nel file di configurazione, o direttamente dal pannello di amministrazione, nella sezione http:

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

    Valorizzare https_port ha la sua importanza: attivare solo TLS lascia il server in ascolto sulla sua porta predefinita, la 8090.

    La password del keystore è memorizzata in chiaro

    settings.conf contiene ormai un segreto. Assicuratevi che il file sia leggibile solo dall'account che esegue Drovio Server.

  4. Riavviate il servizio Drovio Server. Contrariamente alla maggior parte della configurazione, tutto ciò che definisce l'ascoltatore HTTP è letto una sola volta all'avvio, quindi qui un riavvio è necessario. Vedere Avviare e arrestare il servizio per la vostra piattaforma.

  5. Verificate il risultato da un'altra macchina:

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

    L'output deve mostrare il vostro certificato e il certificato intermedio. Un intermedio mancante è l'errore più frequente: alcuni browser accetteranno comunque la connessione là dove l'applicazione Drovio la rifiuterà.

Rinnovare il certificato

Il keystore contiene una copia del certificato, non un riferimento a esso: un certificato rinnovato deve quindi essere reimportato. Rigiocate il passaggio 2 ogni volta, il che avviene ogni 90 giorni con Let's Encrypt.

Su Linux, inviate SIGUSR2 a Drovio Server per applicarlo: il keystore viene riletto dal disco e il certificato è sostituito sull'ascoltatore in corso, senza perdere una sola connessione:

systemctl kill --signal=SIGUSR2 drovio-server

La riga di log SSL certificate has been reloaded lo conferma. Un fallimento è segnalato da SSL certificate reloading has failed, e il certificato precedente resta in servizio.

Automatizzare il rinnovo

Il rinnovo diventa così interamente automatizzabile: fate eseguire il passaggio 2 dall'hook di distribuzione del vostro client ACME, poi inviate il segnale. Nessun riavvio, nessuna finestra di manutenzione.

Windows

I segnali non sono gestiti su Windows. Applicarvi un certificato rinnovato impone di riavviare il servizio.

Protocolli e suite di cifratura

TLS 1.2 e TLS 1.3 sono attivati per impostazione predefinita. Per restringerli, o per fissare una lista di suite di cifratura, usate http.tls_protocols e http.tls_cipher_suites.