Bem, consegui que funcionasse ...
Parece que o Word não gosta do meu certificado SSL (do RapidSSL / GeoTrust), mesmo que ele passe em todas as verificações nos sites do verificador de SSL ( digicert sslshopper e mais).
Então eu percebi que teria que pegar o agente de usuário do Word na minha configuração do Apache HTTPD:
RewriteEngine On
# catch MS Office clients and send them to an HTTP redirect page
BrowserMatchNoCase (word|excel|powerpoint|ms-office) browser=ms-office
RewriteCond %{ENV:browser} ms-office
RewriteRule ^/(?!ms\-office) http://%{HTTP_HOST}/ms-office?url=%{REQUEST_URI} [R=301,L]
# everyone else can go to the HTTPS site
RewriteCond %{HTTPS} off
RewriteCond %{ENV:browser} !ms-office
RewriteRule ^(?!ms\-office) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
ScriptAlias /ms-office /<path>/bin/msoffice-redirect.sh
onde "msoffice-redirect.sh" é um simples script Bash CGI (!) executando uma atualização meta para a página segura:
#!/bin/bash
URL=${QUERY_STRING//url=/}
echo "Content-type: text/html"
echo
echo "<html><head><meta http-equiv='refresh' content='0;url=https://www.newsfixed.com${URL}'/></head><body></body></html>"
Então o fluxo é:
- o Word faz uma solicitação para http: // URL
- O Apache detecta o agente do usuário, se for do Office, redireciona para um script
- Como a página parece normal ao Office, o Word abre um navegador apontando para a saída do script no servidor não seguro, que é uma página HTML simples que contém uma meta tag de atualização
- A atualização alterna o usuário para a versão HTTPS, mas como o handshake SSL está acontecendo no navegador, isso não é um problema
Sim, é um hack completo. Eu me sinto suja. Mas isso funciona. Todos os links em documentos do Word devem ser http: // embora, os links https: // falhem, mas pelo menos podemos incluir alguns links em nossos documentos do Word agora.
Eu me inspirei em o aplicativo Ruby "corrigir links da Microsoft" que faz a mesma coisa em um servidor Ruby.
Espero que isso ajude alguém a evitar a dor que passei neste final de semana!