Tout d'abord, il devrait être possible de spécifier un certificat à utiliser pour tous les clients ne prenant pas en charge SNI. Cela signifie que pour tous les domaines hébergés sur cette adresse IP, vous pouvez avoir au moins l'un d'entre eux travaillant pour des clients sans SNI.
Ce que vous pourriez alors faire lors de la redirection de http vers https est une redirection en deux étapes. La première redirection de http vers https utilise le nom de domaine, qui, selon vous, fonctionnerait avec ou sans prise en charge SNI. L'URL d'origine complète devrait être incluse, de sorte que depuis ce site https, vous pouvez rediriger vers le bon après.
Le nom de domaine, qui fonctionne avec ou sans SNI, peut se comporter différemment selon que SNI est pris en charge par le client. De cette façon, vous sauriez que le client prend en charge SNI avant de le rediriger vers un domaine, ce qui nécessite SNI.
Comment configurer exactement cela sur Apache va être un peu à deviner de mon côté (car je n'ai jamais configuré Apache avec plus d'un certificat). Je suppose que la façon de le faire serait de créer des hôtes virtuels basés sur le nom pour tous les domaines, y compris le domaine intermédiaire.
Créez ensuite un hôte virtuel par défaut pour les clients sans SNI, qui utilise le même certificat que celui qui utilise le nom. Ces deux hôtes virtuels avec un certificat identique, enverront une redirection différente aux clients selon qu'ils prennent en charge SNI.
Enfin, j'activerais IPv6 sur le serveur. Avec IPv6, vous obtenez suffisamment d'adresses IP que vous pouvez attribuer une à chaque hôte virtuel. Le même ensemble d'hôtes virtuels peut être basé sur IPv4 et IP sur IPv6, vous n'avez donc pas à dupliquer de configuration de cette façon.
Le résultat final serait une configuration qui fonctionne tant que le client prend en charge SNI ou IPv6. Seuls les clients qui ne prennent en charge ni l'un ni l'autre auront alors un problème, mais vous pourrez toujours les détecter et serveur une redirection différente ou un message d'erreur.
Quant aux clients qui n'aiment pas l'autorité de certification, ma seule suggestion est de les reconnaître par leur user-agent et de les gérer comme vous le jugez approprié. Assurez-vous d'avoir un lien vers le site https, sur lequel ils peuvent cliquer au cas où vous incluriez par erreur trop de clients.