web-dev-qa-db-ja.com

ルーターの背後にある単一のマシン/ IPにowncloudサーバーとrocket.chatサーバーをセットアップします

次のシナリオがあります。

インターネットプロバイダーからの静的IPアドレスを持っています。私はこれを何年もの間、owncloudを実行しているRaspberryPi上の小さなraspbianサーバーで利用してきました。

今、私ははるかに強力なzotacボックス(クアッドコアプロセッサ、8 GB RAM、256 GB SSD)を購入し、httpsで実行されているowncloudサーバーとrocket.chatサーバー(Slackと同様)の両方を取得しようとしています。もちろん、これはhttpsでも実行する必要があります。

ZotacボックスはUbuntuServer 18.04 LTSを実行し、AirMacExtremeルーターの後ろにあります。メインドメインにIPアドレスを指す2つの異なるサブドメインがあります。

ポート80443、および8443のルーティングを構成して、すべてzotacボックスのローカルIPアドレス192.168.1.33に転送しました。例:

enter image description here

Owncloudサーバー(Apache 2 with PHP 7.2およびMySQL5.7)はhttps://cloud.mydomain.exampleで動作し、rocket.chatをhttps://chat.mydomain.example:8443で動作させたいと考えています。単にhttps://chat.mydomain.comで。

Rocket.chatは、localhost:3000のキャディWebサーバーでrocket.chatが実行されるスナップインストールで提供されます。 https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps/autossl/ で説明されているhttps設定に従おうとしましたが、機能させることができませんでした。また、 https://stackoverflow.com/questions/8541182/Apache-redirect-to-another-port で説明されているように、owncloudサーバーを実行するApacheをリバースプロキシとして機能するように設定しようとしました。 、しかしそれを機能させることができませんでした。

次に、このrocketchat.confファイルを使用してポート8443の仮想ホストをセットアップしようとしました。

<VirtualHost *:8443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/Apache-selfsigned.crt
    SSLCertificateKeyFile /etc/private/ssl/Apache-selfsigned.key
    ServerAdmin [email protected]
    ServerName localhost
    ProxyPreserveHost On

    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / https://localhost:3000/
    ProxyPassReverse / https://localhost:3000/
</VirtualHost>

また、Apacheが80と443でリッスンしているのに、キャディにポート8443でリッスンさせる(そしてhttpsを使用する)ことができない理由もわかりません。

私のシナリオに最適な設定はどれですか?実行する必要のある手順は何ですか?

1
connexo

Rocket.Chatの公式ドキュメント は十分に明確だと思います:

ApacheSSLリバースプロキシの背後で実行

これをrootとして実行します:

apt-get update
apt-get install Apache2
a2enmod proxy_http
a2enmod proxy
a2enmod ssl
a2enmod proxy_wstunnel
a2enmod rewrite

秘密鍵を/etc/ssl/private/chat.domain.com.keyに追加します

権限をロックダウンする:chmod 400 /etc/ssl/private/chat.domain.com.key

証明書を/etc/ssl/certs/chat.domain.com.crtに追加します

中間体を/etc/ssl/certs/intermediate.ca.pemに追加します

/etc/Apache2/sites-enabled/rocketchat.confを編集し、以下のサンプルホスト名「your_hostname.com」の代わりに実際のホスト名を使用してください。

<VirtualHost *:443>

ServerAdmin [email protected]
ServerName chat.domain.com
ErrorLog /var/log/chat.domain.com_error.log
TransferLog /var/log/chat.domain.com_access.log
LogLevel info
SSLEngine On
SSLCertificateFile /etc/ssl/certs/chat.domain.com.crt
SSLCertificateKeyFile /etc/ssl/private/chat.domain.com.key
SSLCertificateChainFile /etc/ssl/certs/intermediate.ca.pem

<Location />
        Order allow,deny
        Allow from all
</Location>

RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Apacheを再起動します:service Apache2 restart

それが言うとき

サンプルのホスト名「your_hostname.com」の代わりに、必ず実際のホスト名を使用してください

それはおそらく意味します

https://www.example.comの代わりに、必ず実際の外部httpsアドレス(例:http://localhost:3000)を使用してください。

2
Craft