# Security and SSL settings

With these functions, you can ensure your iLO’s security settings are as secure as you want them, including using proper SSL certificates for communication.

class hpilo.Ilo
  cert_fqdn(use_fqdn)

    Configure whether to use the fqdn or the short hostname for certificate requests

  get_cert_subject_info()

    Get ssl certificate subject information

        >>> ilo.get_cert_subject_info()
        {'csr_subject_common_name': 'example-server.int.kaarsemaker.net',
         'csr_subject_country': 'US',
         'csr_subject_location': 'Houston',
         'csr_subject_org_name': 'Hewlett-Packard Development Company',
         'csr_subject_orgunit_name': 'ISS',
         'csr_subject_state': 'Texas',
         'csr_use_cert_2048pkey': 'NO',
         'csr_use_cert_custom_subject': 'NO',
         'csr_use_cert_fqdn': 'YES'}

  certificate_signing_request(country=None, state=None, locality=None, organization=None, organizational_unit=None, common_name=None)

    Get a certificate signing request from the iLO

  import_certificate(certificate)

    Import a signed SSL certificate

  computer_lock_config(computer_lock=None, computer_lock_key=None)

    Configure the computer lock settings

  fips_enable()

    Enable FIPS standard to enforce AES/3DES encryption, can only be reset with a call to factory_defaults. Resets Administrator password and license key

  get_encrypt_settings()

    Get the iLO encryption settings

        >>> ilo.get_encrypt_settings()
        /home/dennis/code/python-hpilo/hpilo.py:533: IloWarning: ESKM servers are not configured.
          warnings.warn(child.get('MESSAGE'), IloWarning)
        {'enable_redundancy': True,
         'eskm_cert_name': '',
         'eskm_primary_server_address': '',
         'eskm_primary_server_port': 0,
         'eskm_secondary_server_address': '',
         'eskm_secondary_server_port': 0}

  mod_encrypt_settings(user_login, password, ilo_group_name, cert_name, enable_redundancy, primary_server_address, primary_server_port, secondary_server_address=None, secondary_server_port=None)

    Configure encryption settings

  get_fips_status()

    Is the FIPS-mandated AES/3DESencryption enforcement in place

        >>> ilo.get_fips_status()
        {'fips_mode': 'Enabled'}

  get_security_msg()

    Retrieve the security message that is displayed on the login screen

        >>> ilo.get_security_msg()
        {'security_msg': 'Enabled',
         'security_msg_text': 'Time is an illusion. Lunchtime doubly so'}

  set_security_msg(security_msg, security_msg_text='')

    Enables/disables the security message on the iLO login screen and sets its value

  get_tpm_status()

    Get the status of the Trusted Platform Module

        >>> ilo.get_tpm_status()
        >>> pprint(my_ilo.get_tpm_status())
        {'tpm_enabled': 'No', 'tpm_present': 'No', 'tpm_supported': 'Yes'}