For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

gtsg86's avatar
gtsg86
Icon for Altostratus rankAltostratus
Feb 07, 2022
Solved

Unable to extract key information from \"/config/filestore/files_d/partition_d/ to /var/system/tmp/t

Hi,

I am trying to create a csr from an existing key  using:

device = bigip.BIGIP(lb,uname,pwd)

csr_created = device.create(f'/mgmt/tm/sys/crypto/csr', csr_o)

where csr is :

csr_o = {'name': f'/{partition_name}/{xl_cert_name}',
'partition': cert.name.split('/')[1],
'adminEmailAddress': email,
'city': cert.city,
'commonName': xl_cert_name,
'country': cert.country,
'emailAddress': email,
'key': key.name,
'organization': cert.organization,
'subjectAlternativeName': cert.subjectAlternativeName,
'sourcePath': f'/config/ssl/ssl.csr/'}

I got the error:

bigrest.common.exceptions.RESTAPIError:
Status:
400
Response Body:
{
"code": 400,
"message": "Unable to extract key information from \"/config/filestore/files_d/GCMS_PROD_d/certificate_key_d/:GCMS_PROD:gcdocs-gcms.apps.ci.gc.ca_78757_1\"to \"/var/system/tmp/tmsh/U5XCTm/ssl.key//GCMS_PROD/gcdocs-gcms.apps.ci.gc.ca\"",
"errorStack": [],
"apiError": 26214401
}

Please some can help me to solve this error

  • gtsg86's avatar
    gtsg86
    Feb 15, 2022

    oh! yes I understood the process.

    to Renew the csr and keep the same key and cert,  delete the csr and create a new one :

    1) delete the old CSR:

    csr1 = mgmt.tm.sys.file.ssl_csrs.ssl_csr.load(name=csr_found['name'], partition=partition_name)
    csr1.delete()

    2) create a new one,  by specifying the key location

    csr = mgmt.tm.util.bash.exec_cmd('run',
    utilCmdArgs=f"-c 'tmsh create sys crypto csr /{name[1]}/{name[2]} "
    f"admin-email-address \"{email}\" "
    f"city \"{cert_found['city']}\" "
    f"common-name \"{name[2]}\" "
    f"country \"{cert_found['country']}\" "
    f"email-address \"{email}\" "
    f"key \"{key_found['name']}\" "
    f"organization \"{cert_found['organization']}\" "
    f"state \"{cert_found['state']}\" "
    f"subject-alternative-name \"{cert_found['subjectAlternativeName']}\" "
    f"'")

     

    Thank you VernonWells

4 Replies

  • Are there any errors in /var/log/restjavad.log.0 or /var/log/ltm after you make the request?

    • gtsg86's avatar
      gtsg86
      Icon for Altostratus rankAltostratus

      Hi  VernonWells,

      I looked at the log, i found nothing.

      I want to automatise the task of renewing a cert. to do that I want to create a csr based on the existing key.

      so i delete the old csr and with this line i want to create a new one. in the lab env that work but not in prod  :

      mgmt.tm.util.bash.exec_cmd('run',
      utilCmdArgs=f"-c 'tmsh create sys crypto csr {key_found['name']} "
      f"admin-email-address \"{csr['adminEmailAddress']}\" "
      f"city \"{csr['city']}\" "
      f"common-name \"{csr['commonName']}\" "
      f"country \"{csr['country']}\" "
      f"email-address \"{csr['emailAddress']}\" "
      f"key \"{csr['key']}\" "
      f"organization \"{csr['organization']}\" "
      f"state \"{csr['state']}\" "
      f"subject-alternative-name \"{csr['subjectAlternativeName']}\" "

      f"'")

      i use the python f5.bigip library

      thanks

    • gtsg86's avatar
      gtsg86
      Icon for Altostratus rankAltostratus

      oh! yes I understood the process.

      to Renew the csr and keep the same key and cert,  delete the csr and create a new one :

      1) delete the old CSR:

      csr1 = mgmt.tm.sys.file.ssl_csrs.ssl_csr.load(name=csr_found['name'], partition=partition_name)
      csr1.delete()

      2) create a new one,  by specifying the key location

      csr = mgmt.tm.util.bash.exec_cmd('run',
      utilCmdArgs=f"-c 'tmsh create sys crypto csr /{name[1]}/{name[2]} "
      f"admin-email-address \"{email}\" "
      f"city \"{cert_found['city']}\" "
      f"common-name \"{name[2]}\" "
      f"country \"{cert_found['country']}\" "
      f"email-address \"{email}\" "
      f"key \"{key_found['name']}\" "
      f"organization \"{cert_found['organization']}\" "
      f"state \"{cert_found['state']}\" "
      f"subject-alternative-name \"{cert_found['subjectAlternativeName']}\" "
      f"'")

       

      Thank you VernonWells