Por que o https não está funcionando?

6

Estou tentando redirecionar apenas a raiz do meu site para https. Embora a reescrita aconteça, https não produz nada. O navegador diz. connecting to thinkingmonkey.me... e estagnou.

  • Listen 80 & Listen 443 are present in the conf file.
  • I have restarted httpd.
  • I am using the proper certificate file & private key file.
  • No errors are present in the httpd logs, SSL logs (Ihave a separate log for SSl).
  • Literally nothing has been logged into SSL-access log even if I try to access the https://thinkingmonkey.me directly.

Um netstat -pant | grep httpd tem isto:

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0      0 :::443                      :::*                        LISTEN      1334/httpd          
tcp        0      0 :::80                       :::*                        LISTEN      1334/httpd   

.htaccess:

RewriteEngine on
RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://thinkingmonkey.me [L,R=302]

rewritelog data:

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (2) init rewrite engine with requested uri /

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (1) pass through /

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (3) [perdir /mysite/] strip per-dir prefix: /mysite/ ->

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (3) [perdir /mysite/] applying pattern '^(.*)$' to uri ''

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (4) [perdir /mysite/] RewriteCond: input='80' pattern='80' => matched

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (4) [perdir /mysite/] RewriteCond: input='/' pattern='^/$' => matched

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (2) [perdir /mysite/] rewrite '' -> 'https://thinkingmonkey.me'

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (2) [perdir /mysite/] explicitly forcing redirect with https://thinkingmonkey.me

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (1) [perdir /mysite/] escaping https://thinkingmonkey.me for redirect

my-ip - - [24/Jan/2012:19:01:14 +0000] [thinkingmonkey.me/sid#7fa2335ceb18][rid#7fa2339336d8/initial] (1) [perdir /mysite/] redirect to https://thinkingmonkey.me [REDIRECT/302]

Aqui estão meus hosts virtuais.

<VirtualHost *:80>
     ServerName thinkingmonkey.com
     ServerAlias www.thinkingmonkey.com  www.thinkingmonkey.me

     RewriteEngine on
     RewriteCond %{HTTP_HOST} ^(www\.)?thinkingmonkey\.(com|me)$ [NC]
     RewriteRule ^ http://thinkingmonkey.me%{REQUEST_URI} [L,R=301]
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /mysite/
    ServerName thinkingmonkey.me
    ErrorLog logs/site-error_log
    CustomLog logs/site-access_log common
    RewriteEngine On
    RewriteLog "/var/log/rewrite.log"
    RewriteLogLevel 3
</VirtualHost>

<VirtualHost *:443>

ServerName thinkingmonkey.me

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW


SSLCertificateFile /path/to/my.crt
SSLCertificateKeyFile /path/to/my.key
SSLCertificateChainFile /path/to/my.ca-bundle


<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>
lsof -i -P | grep 443
httpd    1334     root    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1335   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1336   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1337   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1338   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1339   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1340   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1341   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)
httpd    1342   apache    6u  IPv6   3297      0t0  TCP *:443 (LISTEN)

O que está errado aqui?

    
por ThinkingMonkey 24.01.2012 / 20:19

6 respostas

10

OK, tente isto:

telnet localhost 443

Isso dá uma resposta, ou é suspenso? Se estiver respondendo, você deve receber algo parecido com:

$ telnet localhost 443
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

(se o telnet não estiver instalado, então instale-o; você pode sair da sessão de telnet pressionando control-] e digitando "q" para sair)

Se você conseguir se conectar ao servidor da Web na interface local (e o servidor da Web estiver em execução, considerando seus registros), haverá um problema de firewall (sei que você disse que não definiu o firewall, mas isso confirmará). Nesse caso, execute:

iptables -L -n

e poste os resultados.

Atualizar

Nos comentários, essa é uma instância do EC2, portanto, observe os Grupos de segurança associados a essa instância. Certifique-se de que você está permitindo o tcp / 443 em seus grupos de segurança.

Algo como isso pode ajudar:

link

    
por 24.01.2012 / 20:49
2

Em hosts de pilha dupla, ouvir :: 443 significa que você está ouvindo tanto em IPv4 quanto em IPv6. Teste a negociação de TLS por conta própria:

openssl s_client -connect localhost:443
[lots of negotiation output, to ensure the basics are there]

Em seguida, você poderá testar se as respostas HTTP:

GET / HTTP/1.0

Veja como eu redirecionaria:

<VirtualHost *:80>
    ServerName mail.example.com

    RewriteEngine On
    RewriteLog /var/log/apache2/rewrite.log
    RewriteLogLevel 4
    RewriteRule ^(.*)$ https://secure.example.com/mail$1 [R,L]
</VirtualHost>

Remova RewriteLog e RewriteLogLevel da produção ou corra o risco de encher um disco sem sentido.

    
por 24.01.2012 / 20:54
2

Problema semelhante, o apache2 estava respondendo ao 443, nada nos logs

/etc/apache2# openssl s_client -connect localhost:443 -state -debug

me deu o seguinte

SSL_connect:unknown state
read from 0x1182fe0 [0x1189010] (7 bytes => 7 (0x7))
0000 - 48 54 54 50 2f 31 2e                              HTTP/1.
SSL_connect:error in unknown state
139790287365792:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:795:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 295 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE

o problema é que my.domain.com é um ip diferente do configurado nos hosts virtuais. Como servidor usa 2 IPs. então o apache estava respondendo no 443, mas não conseguiu conectar um site à conexão. combinou o IP tudo é bom

    
por 21.07.2016 / 00:17
1

Abra httpd.conf e veja se a linha abaixo está presente:

LoadModule ssl_module modules/mod_ssl.so

Se não, atualize o httpd.conf com isso e reinicie o Apache.

    
por 30.08.2012 / 01:57
0

Vale a pena conferir que tipo de política SSL seu provedor está oferecendo. Depois de muita depuração, descobri que meu problema estava sendo causado por meu provedor de hospedagem bloqueando a porta 443 externamente até que eu os paguei por um certificado SSL. Eu estava planejando usar o LetsEncrypt, mas vou ter que trocar os hosts antes que eu possa fazer isso. De qualquer forma, se nenhuma das outras soluções ajudar e você estiver em um ambiente VPS (ou em qualquer ambiente em que você tenha menos controle sobre sua rede), talvez valha a pena verificar isso novamente.

    
por 29.07.2016 / 12:14
0

Se as chaves SSL não estão definidas (ou foram inexplicavelmente comentadas por gremlins), o Apache 2.2 SSL falhará silenciosamente. Não haverá erro no log e ele não estará escutando 443. Os http: 80 sites funcionarão.

    
por 04.12.2018 / 17:29