Como usar o HTTPS com DHCP no ownCloud?

0

Sistema: servidor Ubuntu 14.04, Apache 2.4, ownCloud 8.2.5, ambiente de teste Raspbian Jessie em Raspberry Pi 3 b. Erro no navegador da Internet do servidor sobre HTTPS, ao acessar https://192.168.1.107 e https://192.168.1.107

Error performing TLS handshake: An unexpected TLS packet was received.

Depuração

  • O comando telnet 192.168.1.107 80 apenas trava por HTTP, da mesma forma que telnet 192.168.1.107 443 para HTTPS.
  • O acesso ao HTTP funciona ao acessar http://192.168.1.107 e http://192.168.1.107/owncloud no navegador da Internet, mas não em telnet como antes
  • Registros /var/log/apache2/error.log não tem erros recentes. Nenhum erro em /var/log/apache2/access.log e não /var/log/apache2/other_vhosts_access.log .

A saída de sudo apache2ctl -M |sort é

access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 core_module (static)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 headers_module (shared)
 http_module (static)
Loaded Modules:
 log_config_module (static)
 logio_module (static)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 socache_shmcb_module (shared)
 so_module (static)
 ssl_module (shared)
 status_module (shared)
 unixd_module (static)
 version_module (static)
 watchdog_module (static)

Minhas configurações devem ser as mesmas que as de John

  1. /etc/apache2/sites-available/ : 000-default.conf e 000-default-ssl.conf .
  2. /etc/apache2/sites-enabled/ : ln -s /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-enabled/000-default.conf e ln -s /etc/apache2/sites-available/000-default-ssl.conf .
  3. /etc/apache2/conf-available/ : owncloud.conf
  4. /etc/apache2/conf-enabled/ : ln -s /etc/apache2/conf-available/owncloud.conf /etc/apache2/conf-enabled/owncloud.conf e outros links simbólicos.
  5. error-ssl.log e access-ssl.log costumavam não misturá-los com os logs padrão em sites-available/000-default-ssl.conf .

Meus certificados e chaves ssl estão em /etc/ssl/ . Meu /etc/apache2/sites-enabled/000-default.conf onde eu segui o tópico aqui

SSLEngine on
SSLCertificateFile    /etc/ssl/apache.crt
SSLCertificateKeyFile /etc/ssl/apache.key

onde minha única diferença é que eu não tenho essas linhas SSLCertificateChainFile /etc/ssl/subca.crt; SSLCACertificateFile /etc/ssl/ca.crt porque eu não deveria ter um ChainFile. Arquivo /var/www/owncloud/config/config.php é

<?php 
$CONFIG = array ( 
'instanceid' => 'yours', 
'passwordsalt' => 'yours', 
'secret' => 'yours', 
'trusted_domains' => 
array ( 
0 => '192.168.1.107', 
1 => '192.168.1.1', 
2 => 'localhost', 
), 
'datadirectory' => '/var/www/owncloud/data', 
'overwrite.cli.url' => '192.168.1.107/owncloud', 
'dbtype' => 'sqlite3', 
'version' => '8.2.5.2', 
'logtimezone' => 'UTC', 
'installed' => true, 
'memcache.local' => '\OC\Memcache\APCu', 
'theme' => '', 
'loglevel' => 2, 
'maintenance' => false, 
'trashbin_retention_obligation' => 'auto', 
'mail_from_address' => 'masimasi', 
'mail_smtpmode' => 'sendmail', 
'mail_domain' => 'gmail.com', 
'mail_smtpauthtype' => 'LOGIN', 
'mail_smtphost' => 'smtp.gmail.com', 
'mail_smtpport' => '587', 
);

/etc/apache2/sites-available/000-default-ssl.conf é

<IfModule mod_ssl.c> 
<VirtualHost _default_:443> 
ServerAdmin webmaster@localhost 
ServerName localhost 

DocumentRoot /var/www/html 

ErrorLog /var/log/apache2/error.log 
CustomLog /var/log/apache2/access.log combined 

SSLEngine on 
SSLProtocol all -SSLv2 
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIU

SSLCertificateFile /etc/ssl/apache.crt
SSLCertificateKeyFile /etc/ssl/apache.key 

SetEnvIf User-Agent .*MSIE.* nokeepalive ssl-unclean-shutdown 
CustomLog /var/log/apache2/ssl_request_log \ 
   "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

<FilesMatch "\.(cgi|shtml|phtml|php)$"> 
SSLOptions +StdEnvVars 
</FilesMatch> 
<Directory /usr/lib/cgi-bin> 
SSLOptions +StdEnvVars 
</Directory> 
</VirtualHost> 
</IfModule>

Permissões / proprietários 644/root:root devem estar certos sobre o SSL

ls -ls /etc/apache2/ssl/ 
total 8 
4 -rw-r--r-- 1 root root 1484 May 31 15:17 apache.crt 
4 -rw-r--r-- 1 root root 1704 May 31 15:17 apache.key

Configurações em sites-x , onde dois links simbólicos

ls -la /etc/apache2/sites-available/ 
total 16 
drwxr-xr-x 2 root root 4096 May 31 21:52 . 
drwxr-xr-x 9 root root 4096 May 31 15:44 .. 
-rw-r--r-- 1 root root 183 May 31 19:43 000-default.conf 
-rw-r--r-- 1 root root 916 May 31 21:50 000-default-ssl.conf
ls -la /etc/apache2/sites-enabled/ 
total 8 
drwxr-xr-x 2 root root 4096 May 31 19:38 . 
drwxr-xr-x 9 root root 4096 May 31 15:44 .. 
lrwxrwxrwx 1 root root 45 May 31 19:35 000-default.conf -> /etc/apache2/sites-available/000-default.conf 
lrwxrwxrwx 1 root root 35 May 31 11:50 000-default-ssl.conf -> ../sites-available/000-default.conf

Configurações em conf-x onde 7 links simbólicos

ls -la /etc/apache2/conf-available/ 
total 40 
drwxr-xr-x 2 root root 4096 May 31 20:07 . 
drwxr-xr-x 9 root root 4096 May 31 15:44 .. 
-rw-r--r-- 1 root root 315 Oct 24 2015 charset.conf 
-rw-r--r-- 1 root root 127 Jul 29 2013 javascript-common.conf 
-rw-r--r-- 1 root root 3224 Oct 24 2015 localized-error-pages.conf 
-rw-r--r-- 1 root root 189 Oct 24 2015 other-vhosts-access-log.conf 
-rw-r--r-- 1 root root 410 May 31 19:11 owncloud.conf 
-rw-r--r-- 1 root root 655 Feb 19 2015 phppgadmin.conf 
-rw-r--r-- 1 root root 2190 Nov 28 2015 security.conf
-rw-r--r-- 1 root root 455 Oct 24 2015 serve-cgi-bin.conf
ls -la /etc/apache2/conf-enabled/ 
total 8 
drwxr-xr-x 2 root root 4096 May 31 13:45 . 
drwxr-xr-x 9 root root 4096 May 31 15:44 .. 
lrwxrwxrwx 1 root root 30 May 31 11:50 charset.conf -> ../conf-available/charset.conf 
lrwxrwxrwx 1 root root 44 May 31 11:50 localized-error-pages.conf -> ../conf-available/localized-error-pages.conf 
lrwxrwxrwx 1 root root 46 May 31 11:50 other-vhosts-access-log.conf -> ../conf-available/other-vhosts-access-log.conf 
lrwxrwxrwx 1 root root 31 May 31 13:45 owncloud.conf -> ../conf-available/owncloud.conf 
lrwxrwxrwx 1 root root 33 May 31 12:03 phppgadmin.conf -> ../conf-available/phppgadmin.conf 
lrwxrwxrwx 1 root root 31 May 31 11:50 security.conf -> ../conf-available/security.conf 
lrwxrwxrwx 1 root root 36 May 31 11:50 serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf

Hipótese de JohnOrion sobre o problema :

you may try setting youself up on a static ip address and setting up the network properly so you can type localhost into the browser on the server machine and it should go to the site .. if it doesnt .. that could be an issue .. if the ssl is looking for localhost but it cant find it becuase for some reason your network doesnt show localhost pointig to your local ip .. that cold be a cause.

Minha hipótese sobre o problema . Saída do comando curl --head localhost | grep Server is Server: Apache/2.4.10 onde nada disse que os módulos SSL estão carregados corretamente. Eu acho que isso deve ser feito em alguns casos. Não tenho certeza.

Criando chave SSL / crt

Tópico sobre como fazer as chaves .key e .crt.

the problem isn't that it was an self signed cert, but the common name have to include the subdomain. i only signed the cert with the common name domain.com but my owncloud is running in cloud.domain.com

Aqui , no entanto, sobre o localhost, então nome comum deve ser apenas 192.168.1.107 sem um barra final, que agora está correta no meu sistema.

Como você autografa um certificado para o host local? Eu incluo 192.168.1.107/owncloud no nome comum, mas não tenho certeza se está certo.

Como você pode usar HTTPS auto-assinado com DHCP no ownCloud?

    
por Léo Léopold Hertz 준영 31.05.2016 / 18:01

2 respostas

1

Provavelmente, está falhando porque você não configurou o servidor para https. A configuração do Apache para https requer que você escute a porta 443, a porta 80 e configure o servidor para TLS com um certificado.

(exemplo da documentação do apache)

LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    SSLCertificateFile "/path/to/www.example.com.cert"
    SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>

Documentação do Ubuntu para configurar HTTPS

    
por John Hall 31.05.2016 / 19:51
1

Como você parece não ter um site completo ativado e talvez seja por isso que não é possível fazer o redirecionamento funcionar. Eu tentei recriar esse problema .. o primeiro problema que encontrei foi o redirecionamento não estava adicionando o / que eu mencionei. Como isso não resolveu o problema, também usei a função reescrever para forçar o owncloud a acessar o https. Foi assim que consegui isso:

Vá para o diretório owncloud localizado em /var/www/owncloud e abra o arquivo .htaccess.

Desloque-se para perto da parte inferior, onde verá #### DO NOT CHANGE ANYTHING ABOVE THIS LINE #### , mesmo abaixo, adicione as seguintes linhas:

<IfModule mod_rewrite.c>
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>

por isso deve ser algo como isto

Options -Indexes
<IfModule pagespeed_module>
  ModPagespeed Off
</IfModule>
#### DO NOT CHANGE ANYTHING ABOVE THIS LINE ####
#### Part you need to add #####
<IfModule mod_rewrite.c>
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</IfModule>
#### end of part you need to add ####
ErrorDocument 403 /owncloud/core/templates/403.php
ErrorDocument 404 /owncloud/core/templates/404.php
<IfModule mod_rewrite.c>
  RewriteRule . index.php [PT,E=PAT

Isso deve usar a regra de reescrita para forçar o owncloud a ser executado em https

    
por John Orion 31.05.2016 / 19:56