Wenn du die Clients komplett selbst in der Hand hast, dann mach eine eigene CA. Ich sehe keinen Sinn dahinter, haufenweise Geld für virtuelle Waren auszugeben, deren einziger Vorteil darin liegt, dass die CAs in allen Browsern verfügbar sind, obwohl man nicht mal einen solchen Browser verwendet. Dafür kaufst du dir noch Unsicherheiten ein. Eine eigene CA ist kostenlos, schnell und sicherer.
Was den Reverse Proxy angeht; Da ich aus der Linuxserver Welt stamme, sind
nginx und
Apache HTTPd natürlich erste Wahl. Ich mutmaße ohne jede Ahnung, dass der
IIS das aber auch können wird. Solltest du dich für eine eigene CA entscheiden, würd ich den Reverse Proxy Lösung aber vermeiden.
Wenn du die Clients programmierst, dann gibt es selbstverständlich für jede Plattform die Möglichkeit die CAs selbst zu wählen. Ich habe das selbst für mobile Plattformen noch nicht gemacht, aber es kann unmöglich vom Betriebssystem vorgegeben sein, welche CAs immer vertrauenswürdig sind. Du bist ja nicht der erste, der SSL/TLS in seiner App benutzt.