We're considering setting up an internal certificate authority to issue ssl certificates. The certificates would primarily be used to secure internal websites, but I could foresee us potentially issuing certificates to secure our VPN infrastructure at some future point as well. Our systems are primarily windows based joined to active directory although we also centos systems and some mac systems. So I'm just wondering what the best strategy is?
I'm inclined to setup an offline root CA, and an enterprise issuing CA (two-tier PKI hierarchy). My impression is that I can do this with VMs entirely but that there's also a possibility that the root CA could be done with a hardware HSM? A HSM presents an interesting situation in the sense that it can be completely offline, and stored somewhere safe, there's also presumably no OS to worry about patching, maintaining, upgrading etc. Given that we'd probably issue the root certificate for 20 years this seems fairly appealing.
Has anyone used a HSM before? Any you'd recommend that are usb based, cheap (no more than a few hundred dollars), and simple to setup. Any challenges incorporating the HSM in with a Microsoft issuing CA? What else should we consider? Can anyone recommend any good how-to's? I'm searching google with mixed results.