Transitioning WebSphere Application Server to the SP800-131 security standard

The National Institute of Standards and Technology (NIST) Special Publications 800-131 standard strengthens algorithms and increases the key lengths to improve security. The standard also provides for a transition period to move to the new standard. You can configure WebSphere® Application Server for SP800-131 standard transition mode.

Before you begin

Read the WebSphere Application Server security standards configurations topic for more background information on security standards.

About this task

The transition period enables a user to run in a mixed environment of settings not supported under the standard along with those that are supported. The NIST SP800-131 standard requires that users be configured for strict enforcement of the standard by a specific time frame. See The National Institute of Standards and Technology website for more details.

The transition options can be useful when trying to get to strict SP800-131. The servers can accept a mixture old settings and new requirements. For example, they can convert certificates but continue to use the TLS protocol.

WebSphere Application Server can be configured to run SP800-131 in a transition mode or a strict mode. For information on how to configure strict mode, read the Configuring WebSphere Application Server for strict mode SP800-131 security standard topic.

To run in the SP800-131 transition mode, the server must be in a specific configuration setting as well. Other strict requirements can be include as wanted.
  • The com.ibm.jsse2.sp800-131 system property must be set to transition for the JSSE to run in the transition mode.
  • The SSL configuration protocols must be one of the TLS settings. Valid values include TLS, TLSv1, TLSv1.1, and TLSv1.2.

Procedure

  1. Click Security > SSL certificate and key management > Manage FIPS.
  2. Select the Enable SP800-131 radio button.
  3. Select the Transition radio button.
  4. You have the choice to change the protocols in SSL configuration to TLSv1.2 by optionally selecting the Update the SSL configuration to require TLSv1.2 box. If you do not select this box, all SSL configurations are set to TLS.
  5. Click Apply/Save.
  6. Restart the servers.
    If your server is enabled with Dynamic SSL Updating, edit the ssl.client.props file and change the com.ibm.ssl.protocol property to have the same protocol you configured the server to have before you restart the server.

    When these changes are applied, and the server is restarted, all the SSL configurations on the server are modified to use the TLS or TLSv1.2 protocol, and the com.ibm.jsse2.sp800-131 system property is set to transition. The SSL configuration uses the appropriate SSL ciphers for the standard.

    Before you can move to the strict mode certificate, the protocol in the configuration must meet the strict requirements.

    You can go to directly to the SSL configuration and set protocols to TLSv1.2 by doing the following:

  7. Click Security > SSL certificate and key management > SSL Configurations.
  8. Select an SSL configuration from the collection panel.
  9. Under Related Items, select Quality of protection (QoP).
  10. Select TLSv1.2 from the pull-down box labeled Protocol.
  11. Click Apply/Save.
    To change the SSL protocol by using scripting, the modifySSLConfig task can also be used.

    Certificates must have a minimum size of 2048 (244 if an Elliptical Curve certificate), and signed with SHA256, SHA384, or SHA512. You can create new ones on the console and replace the old one, or import certificates that meet the standards requirements.

    There are a number of options that you can use to replace certificates.
    • Use the Convert Certificate panel. This panel converts all certificates to meet the standard specified.
      1. Click Security > SSL certificate and key management > Manage FIPS > Convert Certificate.
        Note: Certificates in the box labeled Certificates cannot be converted with this option if:
        1. A chained certificate is not signed by WebSphere, such as a certificate from Certificate Authority (CA). You must request a new certificate from Certificate Authority (CA) and replace the existing certificate with the new certificate.
        2. KeyStore is read-only.
        3. KeyStore is a RACF keystore. WebSphere does not support conversion of certificates in RACF keystore.
      2. Select the Strict radio button and choose which signatureAlgorithm to use when creating the new certificates from the pull-down box.
      3. Select the size of the certificate from the pull-down box labeled New Certificate Key Size. Note that Elliptical Curve signature algorithms require a specific size, so there is no need to provide a size.
      4. Click Apply/Save.

        The convertCertForSecurityStandard scripting task can also be used to convert all certificates to meet a specified standard.

    • Use the personal certificate panels to create new certificates and replace a certificate that does not meet the requirements by doing the following:
      1. Click Security > SSL certificate and key management > Key stores and certificates.
      2. Select a keystore from the collection panel.
      3. Select Personal Certificate.
        1. From the pull-down list on the Create button, select Self-Signed Certificate.
        2. Enter an alias for the certificate. Select a signature algorithm for the certificate that is signed with SHA256, SHA384, or SHA512. Choose a size that is 2048 or greater. Note that Elliptical Curve signature algorithms require a specific size, so there is no need to specify a size.
        3. Click Apply/Save.
        4. Go back to the Personal certificate collection panel and select the certificate that does not meet the standard. Click Replace.
        5. On the Replace panel, select the certificate created that meets the standard from the pull-down list in the box labeled Replace with.
        6. Select Delete old certificate after replacement, and Delete old signer boxes.
        7. Click Apply/Save.
          Note: To replace chained certificates, a root certificate must be created that meets the standard. Follow the previous navigation path to the root certificate in the defaultRootStore, then create a chained certificate with that new root certificate.

          The createSelfSignedCertificate scripting task can also be used to create self-signed certificate. The replaceCertificate scripting task can also be used to replace the new certificate for the old one.

    • Use the personal certificate panels to import certificates and to replace the certificate that does not meet the requirements. Some certificate come from external sources such as a Certificate Authority (CA).
      1. Click Security > SSL certificate and key management > Key stores and certificates.
      2. Select a keystore from the collection panel.
      3. Select Personal Certificate.
        1. Select Import Certificate.
        2. Enter the information needed to access the certificate in an existing keystore file.
        3. Click Apply/Save.
        4. Go back to the Personal certificate collection panel and select the certificate that does not meet the standard. Click the Replace button.
        5. On the Replace panel, select the certificate created that meets the standard from the pull-down list in the box labeled Replace with. Select Delete old certificate after replacement and Delete old signer boxes.
        6. Click Apply/Save.

          The importCertificate scripting task can also be used to import a certificate. The replaceCertificate scripting task can also be used to replace the new certificate for the old one.

  12. To enable strict SP800-131, click Security > SSL certificate and key management > Manage FIPS.
  13. Click the Enable SP800-131.
  14. Click the Strict.
  15. Click Apply/Save.
  16. Restart your servers and manually sync your nodes for the changes to take effect.
    To manually sync the nodes, you might need to modify the ssl.client.props file for each node to match the protocol of the deployment manager. Edit the ssl.client.props file for each node and change the com.ibm.ssl.protocol property to match the protocol of the deployment manager so that a manual sync node can take place.
  17. Configure the client ssl.client.props file to match the Security standard you are running in, strict mode or transition mode.
    Edit the ssl.client.props file as follows:
    1. Modify the com.ibm.security.useFIPS property to be set to true.
    2. Add the com.ibm.websphere.security.FIPSLevel property after the useFips property. Set the property to SP800-131 if strict mode is enabled and transition if transition mode is enabled.
    3. Change the com.ibm.ssl.protocol property to TLSv1.2 if strict mode is enabled. If transition mode is enabled, ensure that the property matches the server protocol setting.
  18. Restart your servers and manually synchronize your nodes.

    Your changes do not take effect until after the nodes are synchronized.

    If you are running in a cluster environment:

    1. Make sure that the administrative console is shut down.
    2. Make sure that no JVMs are running on the server:
      • Stop all of the servers.
      • Stop the node agent.
      • Stop the deployment manager.
    3. Clear all contents in the temp folders.
      [Windows]
      <profile_root>/wstemp/
      <profile_root>/temp/
      <profile_root>/config/temp/
      <profile_root>/logs/dmgr/
      <profile_root>/servers/nodeagent/configuration/
      <profile_root>/servers/<server_name>/configuration/
    4. Initialize the OSGI configuration by running the osgiCfgInit script.
      [Windows]
      was_profile_root/profile_name/bin/osgiCfgInit.bat

      where profile_name is your dmgr01/bin profile.

    5. Clear the OSGI class cache by running the clearClassCache script.
      [Windows]
      was_profile_root/profile_name/bin/clearClassCache.bat

      where profile_name is your dmgr01/bin profile.

    1. Start the deployment manager.
    1. Manually synchronize the nodes.
      1. Start the wsadmin tool if it is not already running.
      2. From the was_home/profiles/profile_name/bin, issue the following syncNode command.
        syncNode
        dmgr_host dmgr_port 

        where profile_name is your dmgr01/bin profile.

        If security is enabled, include the -username and -password parameters when you issue this command:
        syncNode
        dmgr_host dmgr_port -username user_name -password
        pass_word 
    2. Start the node agent.
    3. Start all other servers.

What to do next

The browser used to access the administrative console or an application must use a protocol that is compatible with the server. If the server is running in a transition mode, the browser must be set to use the protocol that matches the server. The SP800-131 standard requires that the SSL connection use the TLSv1.2 protocol, so the browser must support TLSv1.2 and use it to access the administrative console.