Tôi có kịch bản sau đây:
Tôi có một địa chỉ IP tĩnh từ nhà cung cấp internet của tôi. Tôi đã sử dụng điều đó trong nhiều năm nay trên một máy chủ raspbian nhỏ trên PI mâm xôi chạy owncloud.
Bây giờ tôi đã mua một hộp zotac mạnh hơn nhiều (bộ xử lý lõi tứ, RAM 8 GB, SSD 256 GB) và tôi đang cố gắng để cả máy chủ owncloud chạy trên https, cũng như máy chủ rocket.chat (tương tự Slack) Tất nhiên cũng nên chạy trên https.
Hộp Zotac chạy Ubuntu Server 18.04 LTS và nằm phía sau bộ định tuyến Airport Extreme. Tôi có 2 tên miền phụ khác nhau trên tên miền chính của tôi trỏ đến địa chỉ IP của tôi.
Tôi đã cấu hình định tuyến cho các cổng 80
, 443
và 8443
để tất cả được chuyển đến địa chỉ IP cục bộ của hộp zotac của tôi 192.168.1.33
. Thí dụ:
Máy chủ owncloud (Apache 2 với PHP 7.2 và MySQL 5.7) hoạt động trên https://cloud.mydomain.example
và bây giờ tôi muốn làm cho rocket.chat hoạt động trên https://chat.mydomain.example:8443
hoặc thậm chí tốt hơn, chỉ đơn giản là trên https://chat.mydomain.com
.
Rocket.chat được cài đặt nhanh chóng trong đó rocket.chat chạy trên máy chủ web caddy trên localhost:3000
. Tôi đã cố gắng làm theo thiết lập https được mô tả trên https://rocket.chat/docs/installation/manual-installation/ubfox/snaps/autossl/ nhưng không thể làm cho nó hoạt động. Tôi cũng đã cố gắng thiết lập Apache chạy máy chủ owncloud để hoạt động như một proxy ngược như được mô tả trong https://stackoverflow.com/questions/8541182/apache-redirect-to-another-port , nhưng đã không quản lý để làm cho nó hoạt động.
Sau đó, tôi đã cố gắng thiết lập một máy chủ ảo cho cổng 8443 với tệp rocketchat.conf này:
<VirtualHost *:8443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/private/ssl/apache-selfsigned.key
ServerAdmin admin@example.com
ServerName localhost
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / https://localhost:3000/
ProxyPassReverse / https://localhost:3000/
</VirtualHost>
Tôi cũng không hiểu tại sao tôi không thể đơn giản làm cho caddy của tôi nghe trên cổng 8443 (và vẫn sử dụng https) trong khi Apache lắng nghe trên 80 và 443.
Đó sẽ là thiết lập tối ưu cho kịch bản của tôi? Các bước cần thiết phải làm là gì?
<VirtualHost :*443>
?