Configure a FIPS 140-2 Compliant Java Provider on RedHat/CentOS/Fedora
If you're using any form of cryptography in Java, you might be aware of NIST FIPS 140-2, which lays out what you can and cannot use on federal information processing systems. Oracle documentation, true to form, only gets you 80% of the way there. Here's their technical notes on FIPS 140 compliance . So here are the step-by-step instructions for configuring java with a FIPS-compliant Provider (SunPKCS11-NSS). First, you need to install the libraries if you haven't already. These are written by Mozilla, and have gone through NIST's Cryptographic Module Validation Program (CMVP) . Luckily, they're available for RedHat/CentOS/Fedora, and can be installed through yum. sudo yum install nss-pkcs11-devel Next, you need to configure your JRE to add the provider. You do this by editing ${jre.home}/lib/security/java.security and adding a reference to the SunPKCS11 provider. On my Fedora 19 box, I have both the OpenJDK and SunJDK installed. Here are the locat