Ei pessoal,
Eu configurei um Apache 2.4 como descrito aqui: https://github.com/cockpit-project/cockpit/wiki/Proxying-Cockpit-over-Apache-with-LetsEncrypt
Infelizmente, posso ver alguns problemas estranhos:
A página de login "parece" ok. Mas há um erro de console em relação ao mapa de origem.
Depois de inserir os dados de login
SO: CentOS 7.4
httpd: httpd-2.4.6-67.el7.centos.6.x86_64
cockpit: cockpit-ws-157-1.el7.centos.x86_64
Se necessário, posso fornecer informações adicionais e você também pode me contatar via IRC às vezes.
Cumprimentos,
Daniel
Como seu proxy reverso é configurado para o Cockpit? O meu está configurado para ir para https://www.domain.com/manage/ em vez de https://www.domain.com : 9090. Eu tive problemas com o meu exibindo páginas em branco originalmente, mas comecei a trabalhar com as configurações abaixo.
Aqui está a configuração relevante do Apache que usei para fazê-lo funcionar.
<VirtualHost *:443>
ServerName www.domain.com
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/apache2/ssl/www.domain.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/www.domain.com.key
SSLCertificateChainFile /etc/apache2/ssl/ca-chain.cert.pem
ServerAdmin [email protected]
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RequestHeader unset X-Forwarded-Proto
RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
ProxyPreserveHost On
ProxyPass /manage https://localhost:9090/manage
ProxyPassReverse /manage https://localhost:9090/manage
<LocationMatch "^/manage/cockpi(t[^/]+|t)?/socket$">
ProxyPassMatch "ws://localhost:9090/manage/cockpi$1/socket"
</LocationMatch>
</VirtualHost>
Certifique-se de habilitar os módulos do Apache com a2enmod proxy proxy_wstunnel proxy_http ssl rewrite
(que estou assumindo que você já fez a partir das instruções vinculadas).
Além disso, aqui está meu /etc/cockpit/cockpit.conf
. Se você estiver configurando seu proxy reverso como o meu com um subsite, você deve criar o arquivo cockpit.conf e definir as configurações abaixo.
[WebService]
ProtocolHeader = X-Forwarded-Proto
UrlRoot=/manage/
Espero que ajude.
Ei, a configuração acima usará o certificado no cockpit. meu objetivo é encerrar o ssl no httpd já.
O problema parece que mesmo com AllowUnencrypted = true
em /etc/cockpit/cockpit.conf
cockpit tenta usar wss em vez de ws.
<VirtualHost www.domain.com:443>
ServerName www.domain.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www.domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.domain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/wwww.domain.com/chain.pem
# SSL Cipher
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
SSLHonorCipherOrder on
SSLCompression off
ProxyPreserveHost On
ProxyRequests Off
# Proxy to your local cockpit instance
ProxyPass / http://127.0.0.1:9090/
ProxyPassReverse / http://127.0.0.1:9090/
ProxyPass /cockpit/socket ws://127.0.0.1:9090/cockpit/socket
ProxyPassReverse /cockpit/socket ws://127.0.0.1:9090/cockpit/socket
</VirtualHost>
Desculpe, devo ter mencionado que estou usando meu certificado de domínio no Cockpit seguindo estas instruções.
Quanto ao encerramento do SSL em httpd, não tenho certeza sobre isso. Apenas outro usuário final aqui :)
Sem problemas: +1: fico sempre feliz, se alguém cuidar. Toda ajuda é bem vinda.
Tive que consertar isso novamente após a reinstalação. No meu caso, precisava do seguinte /etc/cockpit/cockpit.conf
[WebService]
Origins = https://cockpit.mydomain http://127.0.0.1:9090
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
Eu experimento exatamente o mesmo problema, mas tinha funcionado anteriormente. Eu configurei um certificado e domínio adequados do Let's Encrypt. Alguma ideia?
Aqui está a configuração completa que me fez trabalhar com proxy no Apache sem usar um host virtual. Usei o nome cockpit-new porque os documentos dizem que cockpit e cockpit + são reservados.
[Serviço de internet]
Origins = https://MYDOMAIN.COM http://MYDOMAIN.COM https: // localhost : 9090 http: // localhost : 9090
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
UrlRoot = / cockpit-new /
ProxyPass / cockpit-new / cockpit / socket ws: // localhost: 9090 / cockpit-new / cockpit / socket
ProxyPassReverse / cockpit-new / cockpit / socket ws: // localhost: 9090 / cockpit-new / cockpit / socket
ProxyPass / cockpit-new / http: // localhost : 9090 / cockpit-new /
ProxyPassReverse / cockpit-new / http: // localhost : 9090 / cockpit-new /
RequestHeader definiu X-Forwarded-Proto "https"
RequestHeader definiu X-Forwarded-Port "443"
Redirecionar permanente / novo cockpit / novo cockpit /
ProxyVia On
Embora funcione para configurar o cockpit para ser executado em uma subpasta e funcione no Chrome, não funciona no Safari ou iOS devido a este erro
Recusou-se a conectar-se a wss: //your-site.com/cockpit-new/cockpit/socket porque não aparece na diretiva connect-src da Política de Segurança de Conteúdo.
cockpit.js: 365
Eu tentei substituir o cabeçalho por meio do Apache, mas sem sucesso ainda.
Comentários muito úteis
Aqui está a configuração completa que me fez trabalhar com proxy no Apache sem usar um host virtual. Usei o nome cockpit-new porque os documentos dizem que cockpit e cockpit + são reservados.
/etc/cockpit/cockpit.conf
[Serviço de internet]
Origins = https://MYDOMAIN.COM http://MYDOMAIN.COM https: // localhost : 9090 http: // localhost : 9090
ProtocolHeader = X-Forwarded-Proto
AllowUnencrypted = true
UrlRoot = / cockpit-new /
/etc/apache2/apache2.conf
ProxyPass / cockpit-new / cockpit / socket ws: // localhost: 9090 / cockpit-new / cockpit / socket
ProxyPassReverse / cockpit-new / cockpit / socket ws: // localhost: 9090 / cockpit-new / cockpit / socket
ProxyPass / cockpit-new / http: // localhost : 9090 / cockpit-new /
ProxyPassReverse / cockpit-new / http: // localhost : 9090 / cockpit-new /
RequestHeader definiu X-Forwarded-Proto "https"
RequestHeader definiu X-Forwarded-Port "443"
Redirecionar permanente / novo cockpit / novo cockpit /
ProxyVia On