Wieder ein Abschnitt im Kapitel "Find den Fehler ...". Diesmal ist Squirrelmail und Apache die Hauptpersonen :
Squirrelmail hat in meiner Konfiguration seit Unzeiten ein seltsames Verhalten:
Wenn man ne https (ssl) Verbindung zum Login benutzte, erzeugte Squirrelmail nach dem Login immer wieder ein Redirect auf eine Nicht-SSL Verbindung.
Da ich eine Weile danach gesucht habe hier für Interessierte die Lösung:
(hoffe Google indiziert das richtig *G)
"Wollen Sie mehr erfahren ?" 
Der Code (squirrelmail/functions/strings.php:549) zeigt das squirrelmail versucht festzustellen welches Protokoll genutzt wurde. Anscheinend klappt dies nicht wenn mann ein VirtualHost so wie ich benutzt.
Aus Faulheit: <VirtualHost :80 :443> da sowieso alle SSL Optionen als Default gesetzt wurden. Das klappt auch super, bis auf den Umstand das die Servervariablen : Port immer 80 ist, und die HTTPS Umgebungsvariable nie gesetzt wird.
Mein Workaround ist folgender:
$getEnvVar = getenv('HTTPS');
if (strpos($_SERVER["HTTP_REFERER"],"https")!==false || (isset($getEnvVar) && !strcasecmp($getEnvVar, 'on')) ||
(sqgetGlobalVar('HTTPS', $https_on, SQ_SERVER) && !strcasecmp($https_on, 'on')) ||
(sqgetGlobalVar('SERVER_PORT', $server_port, SQ_SERVER) && $server_port == 443)) {
$proto = 'https://';
}
Es wird einfach zusätzlich im Referer geguckt, ob diese eine "https" Seite war. Das klappt nicht immer, aber für 90% der Fälle die ich benötige.
Squirrelmail: 1.5.1
Apache: 2.2.11
Zusatz:
Apache würde dies nicht machen wenn ich 2 VirtualHost für Port 80 UND Port 443 anlege, und im 2. dann die Zertifikate nochmals angebe.
Dies würde aber bei mir erheblichen Mehraufwand bedeuten, da diese in ner anderen zentralen Configfile liegen. Eventuell baue ich da mal nen Include Statement für.
Andere machen ein Redirect auf erzwungenes https für Webmail .... das halte ich auch nicht für die Ideale Lösung.