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