Software library without hardware based source of entropy will provide enough security to generate digital certificates. However Hardware security Modules provide hardware based source of entropy and apis to generate certificates along with other crypto operations. But buying HSM just for making certificates will be kind of spending much for just one feature. Is there any other way or device to make strong digital certificates?
HSMs are not purchased just for the feature of generating certs.
- HSMs also store the certificates very securely. You cannot use the cert in the HSM unless you are authorised
- HSMs also provide very secure management of the HSM itself - for e.g. you can create smart cards for 5 admins & say that atleast any 3 of the cards have to be used to administer the HSM
- HSMs provide very high speeds for signing. If you are doing really huge amount signings per second, then this reduces the load on your software.
- HSMs also provide high speeds for key generation. This may be important for temporal certificate generation - each certificate is used only for one signing.
What I read from your comments, a HSM is not really what you need. The main purpose of an HSM is to securely store keys, including layers of physical protection. That is what makes them special (and expensive). The second most important feature of an HSM is a special processor which can execute cryptographic operations very fast (think, thousands of RSA signatures per second) - something which you apparently need neither.
There are simple hardware devices which just provide entropy out there for a lot less money, but I doubt that you will need those either.
Your operating system should provide you with pretty decent entropy. If you add some additional entropy yourself (a timestamp, a process id, log entries) you will get sufficient randomness for good keys.
It sounds as if you're looking for a commercial solution to entropy generation. Hardware security modules are targeted at a broader security market that also includes key management, backup and tamper detection. There's no hard decision to make. Go with a market leader in this stuff and get either a USB or PCIe quantum random number generator like:-
They're from ID Quantique and only ~€1000 which you can probably write off as IT investment for tax purposes. 4MBits /s of true entropy should be sufficient and they work on Linux and the other one. It also means the full entropy rate is available immediately from boot. If plugged into your key generating code as an entropy source, you won't need any underlying PRNGs. You can use true entropy for the securest key generation.
There are cheaper USB stick things but they're not very good in my assessment, and support will be an issue as those companies frequently fail.