Tanto quanto eu saiba, o Apache Httpd tem suporte a RFC 2817 desde a versão 2.1.
Para usá-lo, você deve usar SSLEngine optional
(em vez do mais comum SSLEngine on
para HTTPS ), como mencionado na documentação .
EDITAR (eu não sabia que você já estava usando SSLEngine optional
):
Parece que esse problema é especificamente devido a OPTIONS * HTTP/1.1
. Ele funcionará quando você enviar OPTIONS / HTTP/1.1
(ou OPTIONS / HTTP/1.1
) com os mesmos cabeçalhos de upgrade.
Depois de um pouco mais de investigação, parece que OPTIONS *
simplesmente não funciona nas versões recentes do Apache Httpd (ou pelo menos funciona de forma diferente).
Se você tentar um Debian Etch (Apache Httpd 2.2.3), um simples OPTIONS * HTTP/1.1
(com um Host
header) lhe dará uma resposta com os cabeçalhos Allow: GET,HEAD,POST,OPTIONS
e Vary
.
Em um Debian Lenny (Apache Httpd 2.2.9, com alguns patches extras de segurança backportados) e versões mais recentes, você não obterá esses Allow
ou Vary
cabeçalhos. Você irá obtê-los com OPTIONS /
.
Suspeito que algo tenha mudado na forma como OPTIONS *
foi tratado entre essas versões. (Isso também pode ter algo a ver com os problemas mencionados em este tópico .) Isso certamente afetaria uma atualização do RFC 2817 via OPTIONS *
.
Eu sugeriria perguntar ao usuário do Apache Httpd ou possivelmente à lista de desenvolvedores sobre isso.
Parece que pode ser um bug. (O uso de OPTIONS *
é bastante raro, e tão poucos clientes suportam o RFC 2817 que ele pode simplesmente ter passado despercebido.)