Puncte:0

Apache2 VHost pentru subdomeniu

drapel br

Am configurat acum câteva luni nextcloud-ul meu pe VM-ul meu Ubuntu 20.04.3 LTS care rulează pe FreeNAS-ul meu, urmând tutorialul lor, așa că ai grijă de mine, nu sunt în niciun caz un guru instruit în apache2 ;-)

Configurația mea actuală VHost pentru nextcloud-ul meu este după cum urmează:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/nextcloud/
     ServerName cloud.domain.net
     ServerAlias www.cloud.domain.net

     Alias /nextcloud "/var/www/nextcloud/"

     <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =cloud.domain.net [OR]
RewriteCond %{SERVER_NAME} =www.cloud.domain.net
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Mi-am configurat recent Asistentul acasă și am vrut să acord acces la distanță prin aplicația HASS. Am vrut să redirecționez traficul, venind prin

https://homeassistant.domain.net

Abordarea mea pentru homeassistant.conf a fost:

<VirtualHost *>
    ServerName homeassistant.domain.net

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://192.168.0.9:8123/
    ProxyPassReverse / http://192.168.0.9:8123/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

Din pacate asta nu merge....

Îmi poate indica cineva configurația corectă, astfel încât Home Assistant Trafic să fie și criptat ssl?

Puncte:0
drapel pk

Trebuie să vă asigurați că dvs VirtualHost afirmatiile sunt exact aceleasi. În prezent, unul dintre ei spune VirtualHost *, iar celălalt spune VirtualHost *:80. Este gresit. Deoarece este, în general, o idee mai bună să aveți numărul portului, ar trebui să adăugați :80 mușcat la celălalt VirtualHost linia. Acest lucru ar trebui să-l facă să funcționeze fără criptare.

Pentru a adăuga HTTPS, aveți mai multe lucruri de făcut. Instrucțiunile de mai jos explică ce trebuie să faceți pentru dvs homeassistant.domain.net domeniu, dar va trebui să repetați instrucțiunile pentru domeniul următor cloud, dacă doriți să criptați și traficul acolo.

În primul rând, veți avea nevoie de un certificat.Deoarece spuneți că doriți să „acordați acces la distanță”, presupun că serverul dvs. este disponibil de pe Internetul public; asta înseamnă că poți folosi letsencrypt:

  1. Instalare certbot, aplicația letsencrypt pentru a crea și instala certificate.

  2. Modificați-vă VirtualHost strofă, astfel încât să nu folosească proxy directorul „/.well-known” și să îi dea un DocumentRoot, adăugând următoarele rânduri

     DocumentRoot /var/www/homeassistant
     ProxyPass /.cunoscut !
    
  3. Creați /var/www/homeassistant director, dacă nu există încă.

  4. Rulați certbot pentru a vă crea certificatele:

     registrul certbot
     certbot certonly --webroot -w /var/www/homeassistant -d homeassistant.domain.net
    

    Prima dintre aceste comenzi vă va înregistra cu letsencrypt; al doilea va solicita un certificat în care se va instala /etc/letsencrypt.

    Notă: certbot are și un mod pentru a activa automat SSL și a instala certificatele pentru tine, dar nu l-am folosit niciodată și nu știu exact ce face. Poate vrei să te joci cu el. Pentru a face acest lucru, utilizați --apache mai degrabă decât --webroot și citiți certbot --help ieșire. Restul acestei postări presupune că tu nu a făcut-o face asta și, în schimb, a folosit --webroot modul.

  5. Asigura certbot reînnoiește este rulat periodic, astfel încât certificatele dumneavoastră să fie reînnoite automat înainte de a expira (de exemplu, prin utilizarea cron).

Acum aveți certificate în /etc/letsencrypt. Pentru a activa SSL și a le utiliza, trebuie să urmați următorii pași:

  1. Asigura-te ca mod_ssl este încărcat; dacă utilizați Debian (sau unul dintre derivatele sale, cum ar fi Ubuntu), acest lucru se poate face prin a2enmod ssl; alte sisteme au de obicei un fișier de configurare opțional sau unele de genul pe care va trebui să le includeți.

  2. Schimbați fiecare VirtualHost afirmație așa se spune VirtualHost *:443, pentru portul HTTPS.

  3. adăugați opțiunile necesare pentru SSL la dvs VirtualHost strofe:

     SSLEngine activat
     SSLCertificateFile /etc/letsencrypt/live/homeassistant.domain.net/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/homeassistant.domain.net/privkey.pem
    
  4. (opțional) adăugați o strofă de redirecționare, astfel încât cererile HTTP simple 80 să fie redirecționate către HTTPS:

     <VirtualHost *:80>
         ServerName homeassistant.domain.net
         DocumentRoot /var/www/homeassistant
         <Directory /var/www/homeassistant>
             Require all granted
             Redirect permanent / https://homeassistant.domain.net/
         </Directory>
     </VirtualHost>
    

    Este nevoie de mod_alias, care este de obicei activat (dar poate fi necesar să îl activați dacă nu; pe Debian și derivate, ați folosi alias a2enmod).

  5. (opțional) consolidați configurația SSL utilizând Strict-Transport-Security și alte câteva opțiuni:

     Set antet Strict-Transport-Security max-age=15768000
     Set antet X-Frame-Options SAMEORIGIN
     Setul antet X-Content-Type-Options nosniff
    

    Este nevoie de mod_headers (anteturi a2enmod).

drapel br
Hei Wouter, mulțumesc pentru răspuns - sugestia cu numărul portului a fost grozavă. Am căutat mai departe și am observat că trebuie să adaug o configurație la Asistentul meu de acasă (vezi asta: https://community.home-assistant.io/t/home-assistant-400-bad-request-docker-proxy-solution/322163 ) Am accesul Http acum, dar cu certificatul SSL am o problemă de rezolvat. Primesc un răspuns nevalid al certbot... `Domeniu: homeassistant.domain.net` `Tip: neautorizat` `Detaliu: răspuns nevalid de la` `http://homeassistant.domain.net/.well-known/acme-challenge` `[XXX.XXX.XXX.XXX]: 404`
drapel pk
Ați repornit Apache după ce ați schimbat fișierul de configurare? Asta este necesar; Apache nu va reciti automat fișierul de configurare. Dacă ați făcut-o, vă rugăm să vedeți dacă găsiți ceva interesant în jurnalele de erori...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.