Configure o servidor owncloud e o servidor rocket.chat em uma única máquina / ip atrás de um roteador

1

Eu tenho o seguinte cenário:

Eu tenho um endereço IP estático do meu provedor de internet. Eu tenho feito uso disso há anos em um pequeno servidor raspbian em um PI de framboesa rodando owncloud.

Agora comprei uma caixa zotac muito mais potente (processador quad core, 8 GB de RAM, SSD de 256 GB) e estou tentando obter um servidor owncloud em execução em https, bem como um servidor rocket.chat (semelhante Slack) que, claro, também deve ser executado em https.

A caixa Zotac roda o Ubuntu Server 18.04 LTS e fica atrás de um roteador Airport Extreme. Eu tenho dois subdomínios diferentes no meu domínio principal apontando para o meu endereço IP.

Eu configurei o roteamento para as portas 80 , 443 e 8443 para que todas sejam direcionadas para o endereço IP local da minha caixa zotac ' 192.168.1.33 . Exemplo:

Oservidorowncloud(Apache2comPHP7.2eMySQL5.7)funcionaemhttps://cloud.mydomain.exampleeagoraeuquerofazerorocket.chatfuncionaremhttps://chat.mydomain.example:8443,oumelhorainda,simplesmenteemhttps://chat.mydomain.com.

ORocket.chatvememumainstalaçãoinstantânea,emqueorocket.chatéexecutadoemumservidordawebemlocalhost:3000.Tenteiseguiraconfiguraçãodehttpsdescritano link , mas não consegui para o trabalho. Eu também tentei configurar o Apache que executa o servidor owncloud para funcionar como um proxy reverso, conforme descrito em link , mas não conseguiu fazê-lo funcionar.

Então eu tentei configurar um host virtual para a porta 8443 com este arquivo rocketchat.conf:

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

Eu também não entendo porque não posso simplesmente fazer meu caddy escutar na porta 8443 (e ainda usar https) enquanto o Apache escuta em 80 e 443.

Qual seria a melhor configuração para o meu cenário? Quais seriam as etapas necessárias para executar?

    
por connexo 18.05.2018 / 21:22

1 resposta

2

Acho que a documentação oficial do Rocket.Chat é clara:

Running behind an Apache SSL Reverse Proxy

Run this as root:

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

Add your private key to /etc/ssl/private/chat.domain.com.key

Lock down permissions: chmod 400 /etc/ssl/private/chat.domain.com.key

Add your certificate to /etc/ssl/certs/chat.domain.com.crt

Add your intermediate to /etc/ssl/certs/intermediate.ca.pem

Edit /etc/apache2/sites-enabled/rocketchat.conf and be sure to use your actual hostname in lieu of the sample hostname “your_hostname.com” below.

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

Restart Apache: service apache2 restart

Quando diz

be sure to use your actual hostname in lieu of the sample hostname “your_hostname.com”

isso provavelmente significa

be sure to use your actual external https address (e.g., https://www.example.com) in lieu of http://localhost:3000

    
por 19.05.2018 / 00:33