Score:0

Apache2 VHost สำหรับโดเมนย่อย

ธง br

ฉันกำหนดค่าเมื่อหลายเดือนก่อน nextcloud ของฉันบน Ubuntu 20.04.3 LTS VM ที่ทำงานบน FreeNAS ของฉัน ตามบทช่วยสอนของพวกเขา ดังนั้นโปรดอดทนกับฉันด้วย ฉันไม่ได้เป็นกูรู apache2 ที่ได้รับการฝึกฝน ;-)

การกำหนดค่า VHost ปัจจุบันของฉันสำหรับ nextcloud มีดังนี้:

<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>

ฉันเพิ่งตั้งค่า Home Assistant และต้องการให้สิทธิ์การเข้าถึงระยะไกลผ่านแอป HASS ฉันต้องการเปลี่ยนเส้นทางการรับส่งข้อมูลเข้ามาทาง

https://homeassistant.domain.net

วิธีการของฉันสำหรับ homeassistant.conf คือ:

<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>

น่าเสียดายที่มันใช้งานไม่ได้....

ใครสามารถชี้ให้ฉันเห็นการกำหนดค่าที่ถูกต้อง เพื่อให้ Home Assistant Trafic ของฉันได้รับการเข้ารหัส ssl ด้วย

Score:0
ธง pk

คุณต้องแน่ใจว่า โฮสต์เสมือน งบเหมือนกันทุกประการ ปัจจุบัน หนึ่งในนั้นกล่าวว่า โฮสต์เสมือน *และอีกคนหนึ่งพูดว่า โฮสต์เสมือน *:80. นี่เป็นสิ่งที่ผิด เนื่องจากโดยทั่วไปคุณควรมีหมายเลขพอร์ต คุณควรเพิ่ม :80 บิตไปที่อื่น ๆ โฮสต์เสมือน ไลน์. สิ่งนี้จะทำให้มันทำงานได้โดยไม่ต้องเข้ารหัส

ในการเพิ่ม HTTPS คุณยังมีสิ่งที่ต้องทำอีกมาก คำแนะนำด้านล่างจะอธิบายสิ่งที่ต้องทำสำหรับคุณ homeassistant.domain.net โดเมน แต่คุณจะต้องทำซ้ำคำแนะนำสำหรับโดเมนคลาวด์ถัดไปของคุณ หากคุณต้องการเข้ารหัสการรับส่งข้อมูลที่นั่นด้วย

ขั้นแรก คุณต้องมีใบรับรองเนื่องจากคุณกำลังบอกว่าคุณต้องการ "ให้สิทธิ์การเข้าถึงระยะไกล" ฉันถือว่าเซิร์ฟเวอร์ของคุณพร้อมใช้งานจากอินเทอร์เน็ตสาธารณะ นั่นหมายความว่าคุณสามารถใช้ ให้เข้ารหัส:

  1. ติดตั้ง ใบรับรองแอปพลิเคชันของ letsencrypt เพื่อสร้างและติดตั้งใบรับรอง

  2. ปรับเปลี่ยนของคุณ โฮสต์เสมือน stanza จึงไม่ proxy ไดเร็กทอรี "/.well-known" และให้ DocumentRoot โดยเพิ่มบรรทัดต่อไปนี้

     DocumentRoot /var/www/homeassistant
     ProxyPass /.ที่รู้จักกันดี !
    
  3. สร้าง /var/www/ผู้ช่วยแม่บ้าน ไดเร็กทอรี ถ้ายังไม่มี

  4. เรียกใช้ certbot เพื่อสร้างใบรับรองของคุณ:

     ลงทะเบียน certbot
     certbot certonly --webroot -w /var/www/homeassistant -d homeassistant.domain.net
    

    คำสั่งแรกจะลงทะเบียนคุณด้วย letsencrypt; คนที่สองจะขอใบรับรองที่จะติดตั้ง /etc/letsencrypt.

    หมายเหตุ: certbot ยังมีโหมดสำหรับเปิดใช้งาน SSL โดยอัตโนมัติและติดตั้งใบรับรองให้กับคุณ แต่ฉันไม่เคยใช้มันเลยไม่รู้ว่ามันใช้ทำอะไรกันแน่ คุณอาจต้องการเล่นกับมัน ในการดำเนินการดังกล่าว ให้ใช้ --apache แทน --webroot และอ่านไฟล์ certbot -- ช่วยด้วย เอาต์พุต ส่วนที่เหลือของโพสต์นี้ถือว่าคุณ ไม่ได้ ทำอย่างนั้นและใช้แทน --เว็บรูท โหมด.

  5. ทำให้มั่นใจ certbot ต่ออายุ จะถูกเรียกใช้เป็นระยะ เพื่อให้ใบรับรองของคุณได้รับการต่ออายุโดยอัตโนมัติก่อนที่จะหมดอายุ (เช่น โดยใช้ ครอน).

ตอนนี้คุณมีใบรับรองภายใต้ /etc/letsencrypt ในการเปิดใช้งาน SSL และใช้งาน คุณต้องทำตามขั้นตอนต่อไปนี้:

  1. รับรองว่า mod_ssl โหลดแล้ว; หากคุณใช้ Debian (หรือหนึ่งในอนุพันธ์ของมัน เช่น Ubuntu) คุณสามารถทำได้ด้วยวิธีนี้ a2enmod ssl; ระบบอื่นๆ มักจะมีไฟล์คอนฟิกูเรชันเสริมหรือบางไฟล์ที่คุณจำเป็นต้องรวมไว้

  2. เปลี่ยนทุกๆ โฮสต์เสมือน คำสั่งจึงกล่าวว่า โฮสต์เสมือน *:443สำหรับพอร์ต HTTPS

  3. เพิ่มตัวเลือกที่จำเป็นสำหรับ SSL ให้กับคุณ โฮสต์เสมือน บท:

     SSLEngine เปิดอยู่
     SSLCertificateFile /etc/letsencrypt/live/homeassistant.domain.net/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/homeassistant.domain.net/privkey.pem
    
  4. (เป็นทางเลือก) เพิ่มการเปลี่ยนเส้นทาง stanza เพื่อให้ HTTP ธรรมดาร้องขอ 80 ถูกเปลี่ยนเส้นทางไปยัง 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>
    

    สิ่งนี้ต้องการ mod_aliasซึ่งโดยปกติจะเปิดใช้งาน (แต่คุณอาจต้องเปิดใช้งานหากไม่เป็นเช่นนั้น บนเดเบียนและอนุพันธ์ คุณจะใช้ นามแฝง a2enmod).

  5. (ไม่บังคับ) ทำให้การกำหนดค่า SSL ของคุณแข็งขึ้นโดยใช้ Strict-Transport-Security และตัวเลือกอื่นๆ อีกเล็กน้อย:

     ส่วนหัวตั้งค่าอย่างเข้มงวด - การขนส่ง - ความปลอดภัยสูงสุดอายุ = 15768000
     ส่วนหัวตั้งค่า X-Frame-Options SAMEORIGIN
     ส่วนหัวตั้งค่า X-Content-Type-Options nosniff
    

    สิ่งนี้ต้องการ mod_headers (ส่วนหัว a2enmod).

br flag
สวัสดี Wouter ขอบคุณสำหรับคำตอบ คำใบ้หมายเลขพอร์ตนั้นยอดเยี่ยมมาก ฉันค้นหาเพิ่มเติมและสังเกตเห็นว่าฉันต้องเพิ่มการกำหนดค่าบางอย่างให้กับ Home Assistant (ดูสิ่งนี้: https://community.home-assistant.io/t/home-assistant-400-bad-request-docker-proxy-solution/322163 ) ตอนนี้ฉันได้รับ Http acces แล้ว แต่ด้วยใบรับรอง SSL ฉันมีปัญหาที่ต้องแก้ไข ฉันได้รับการตอบกลับที่ไม่ถูกต้องของ certbot... `โดเมน: homeassistant.domain.net` `ประเภท:ไม่ได้รับอนุญาต` `รายละเอียด: การตอบสนองไม่ถูกต้องจาก` `http://homeassistant.domain.net/.well-known/acme-challenge` `[XXX.XXX.XXX.XXX]: 404`
pk flag
คุณรีสตาร์ท Apache หลังจากเปลี่ยนไฟล์กำหนดค่าหรือไม่ นั่นเป็นสิ่งที่จำเป็น Apache จะไม่อ่านไฟล์การกำหนดค่าซ้ำโดยอัตโนมัติ หากเป็นเช่นนั้น โปรดดูว่าคุณพบสิ่งที่น่าสนใจในบันทึกข้อผิดพลาดของคุณหรือไม่...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา