Điểm:0

Apache2 Vhost cho tên miền phụ

lá cờ br

Tôi đã định cấu hình vài tháng trước nextcloud của mình trên Ubuntu 20.04.3 LTS VM chạy trên FreeNAS của tôi, làm theo hướng dẫn của họ, vì vậy hãy đồng ý với tôi, tôi không có nghĩa là một chuyên gia apache2 được đào tạo ;-)

Cấu hình Vhost hiện tại của tôi cho nextcloud của tôi như sau:

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

Gần đây, tôi đã thiết lập Trợ lý tại nhà và muốn cấp quyền truy cập từ xa thông qua Ứng dụng HASS. Tôi muốn chuyển hướng lưu lượng truy cập, đến qua

https://homeassistant.domain.net

Cách tiếp cận của tôi cho homeassistant.conf là:

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

Thật không may, điều này không hoạt động ....

Ai đó có thể chỉ cho tôi cấu hình phù hợp để Trafic Home Assistant của tôi cũng được mã hóa ssl không?

Điểm:0
lá cờ pk

Bạn cần đảm bảo rằng bạn Máy chủ ảo phát biểu hoàn toàn giống nhau. Hiện tại, một trong số họ nói Máy chủ ảo *, và người kia nói Máy chủ ảo *:80. Cái này sai. Vì nói chung tốt hơn là nên có số cổng, bạn nên thêm :80 một chút để khác Máy chủ ảo dòng. Điều này sẽ làm cho nó hoạt động mà không cần mã hóa.

Để thêm HTTPS, bạn còn nhiều việc phải làm. Các hướng dẫn bên dưới giải thích những việc cần làm cho homeassistant.domain.net miền, nhưng bạn sẽ phải lặp lại hướng dẫn cho miền nextcloud của mình nếu bạn cũng muốn mã hóa lưu lượng truy cập ở đó.

Đầu tiên, bạn sẽ cần một chứng chỉ.Vì bạn đang nói rằng bạn muốn "cấp quyền truy cập từ xa", tôi cho rằng máy chủ của bạn khả dụng từ Internet công cộng; điều đó có nghĩa là bạn có thể sử dụng cho phép mã hóa:

  1. Cài đặt certbot, ứng dụng tạo và cài đặt chứng chỉ của letencrypt.

  2. sửa đổi của bạn Máy chủ ảo khổ thơ để nó không ủy quyền cho thư mục "/.well-known" và cung cấp cho nó một DocumentRoot bằng cách thêm các dòng sau

     DocumentRoot /var/www/homeassistant
     ProxyPass /.nổi tiếng!
    
  3. tạo /var/www/trợ lý gia đình thư mục, nếu nó chưa tồn tại.

  4. Chạy certbot để tạo chứng chỉ của bạn:

     đăng ký certbot
     certbot certonly --webroot -w /var/www/homeassistant -d homeassistant.domain.net
    

    Lệnh đầu tiên sẽ đăng ký bạn với letsencrypt; cái thứ hai sẽ yêu cầu chứng chỉ mà nó sẽ cài đặt vào /etc/letsencrypt.

    Lưu ý: certbot cũng có chế độ tự động kích hoạt SSL và cài đặt chứng chỉ cho bạn, nhưng tôi chưa bao giờ sử dụng nó nên không biết chính xác nó làm gì. Bạn có thể muốn chơi với nó. Để làm như vậy, hãy sử dụng --apache thay vì --webroot và đọc certbot --help đầu ra. Phần còn lại của bài đăng này giả định bạn không làm điều đó, và thay vào đó sử dụng --webroot cách thức.

  5. Chắc chắn gia hạn certbot được chạy định kỳ để chứng chỉ của bạn được tự động gia hạn trước khi hết hạn (ví dụ: bằng cách sử dụng cron).

Bây giờ bạn có chứng chỉ trong /etc/letsencrypt. Để kích hoạt SSL và sử dụng chúng, bạn cần thực hiện các bước sau:

  1. Đảm bảo rằng mod_ssl Nó đã nạp đầy; nếu bạn sử dụng Debian (hoặc một trong những dẫn xuất của nó, như Ubuntu), điều này có thể được thực hiện bằng cách a2enmod ssl; các hệ thống khác thường có tệp cấu hình tùy chọn hoặc một số tệp như vậy mà bạn cần đưa vào.

  2. Thay đổi mọi Máy chủ ảo tuyên bố như vậy nó nói Máy chủ ảo *:443, cho cổng HTTPS.

  3. thêm các tùy chọn cần thiết cho SSL vào Máy chủ ảo khổ thơ:

     Công cụ SSL bật
     SSLCertificateFile /etc/letsencrypt/live/homeassistant.domain.net/fullchain.pem
     SSLCertificateKeyFile /etc/letsencrypt/live/homeassistant.domain.net/privkey.pem
    
  4. (tùy chọn) thêm một khổ thơ chuyển hướng để các yêu cầu HTTP đơn giản 80 được chuyển hướng đến 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>
    

    Điều này đòi hỏi mod_alias, thường được bật (nhưng bạn có thể phải bật nó nếu không; trên Debian và các dẫn xuất, bạn sẽ sử dụng bí danh a2enmod).

  5. (tùy chọn) củng cố cấu hình SSL của bạn bằng cách sử dụng Strict-Transport-Security và một số tùy chọn khác:

     Bộ tiêu đề Strict-Transport-Security max-age=15768000
     Bộ tiêu đề X-Frame-Options SAMEORIGIN
     Bộ tiêu đề X-Content-Type-Options nosniff
    

    Điều này đòi hỏi mod_headers (tiêu đề a2enmod).

lá cờ br
Này Wouter, cảm ơn vì câu trả lời - gợi ý về số cổng thật tuyệt. Tôi đã tìm kiếm thêm và nhận thấy rằng tôi phải thêm một số cấu hình vào Home Assistant của mình (xem phần này: https://community.home-assistant.io/t/home-assistant-400-bad-request-docker-proxy-solution/322163 ) Tôi đã nhận được các điểm truy cập http hiện đang hoạt động nhưng với Chứng chỉ SSL, tôi gặp một số vấn đề cần giải quyết. Tôi nhận được Phản hồi không hợp lệ của certbot... `Miền: homeassistant.domain.net` `Loại: trái phép` `Chi tiết: Phản hồi không hợp lệ từ` `http://homeassistant.domain.net/.well-known/acme-challenge` `[XXX.XXX.XXX.XXX]: 404`
lá cờ pk
Bạn đã khởi động lại Apache sau khi thay đổi tệp cấu hình chưa? Điều đó là cần thiết; Apache sẽ không tự động đọc lại tệp cấu hình. Nếu bạn đã làm như vậy, vui lòng xem liệu bạn có tìm thấy điều gì thú vị trong nhật ký lỗi của mình không...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.