Bobcares

OpenSSL “Unable to load certificate” error

by | Oct 28, 2021

We may encounter the OpenSSL “Unable to load certificate” error if we paste the cert from a browser.

We may most likely miss the  CR and LF characters, preventing OpenSSL from reading/loading the cert file.

As part of our Server Management Services, we assist customers with several OpenSSL queries.

Today, let us see how our techs fix this error.

 

OpenSSL “Unable to load certificate” error

In order to begin, our Support Techs recommend having OpenSSL 0.9.7a and RHEL5.

Most often, the error message will look like the following:

Unable to load certificate PEM routines PEM_read_bio:bad base64 decode:pem_libc

In this case, we need to enclose cert within BEGIN CERTIFICATE and END CERTIFICATE statements.

openssl error:0906D064:PEM routines:PEM_read_bio:bad base64 decode

Another scenario is the above error. Recently, for one of our customers, Java keytool could read an X509 certificate file, but OpenSSL could not.

He thought it must be in DER instead of PEM,” but it was in PEM (plain text).

This is because OpenSSL is picky about PEM certificate formatting.

Common Causes of “Unable to Load Certificate” Error

  • OpenSSL expects a certificate file in a specific format, commonly PEM (Privacy-Enhanced Mail). OpenSSL cannot load if the certificate is in a different format, such as DER (binary format), PFX, or PKCS#7.
  • PEM files require specific headers and footers to identify the certificate content.
  • If the certificate file has restricted permissions, OpenSSL may be unable to access it. Ensure the file has read permissions for the user executing the command.
  • A certificate file may become corrupted during transfer or if it is not properly generated. Corrupted files can prevent OpenSSL from loading the certificate.
  • Certain OpenSSL commands require different input or expect files in specific formats. For example, attempting to read a private key file as a certificate will trigger an error.

 

How to Fix OpenSSL “Unable to load certificate” error

Moving ahead, let us see how our Support Techs fix these issues.

1. First and foremost, the file must contain:

—–BEGIN CERTIFICATE—–

It should be in a separate line.

2. In addition, each line of “gibberish” must be 64 characters wide.

3. And the file must end with:

—–END CERTIFICATE—–

Like the prior, this should also be terminated with a new line.

4. Then we ensure that the cert text is not saved with Word. We save it in ASCII.

5. Also, we should not mix DOS and UNIX style line terminations.

Verify File Permissions

Check if the file has sufficient read permissions for the OpenSSL command user.

ls -l certificate.pem

If the permissions are too restrictive, change them to allow read access:

chmod 644 certificate.pem

This command makes the file readable by the owner and other users, allowing OpenSSL to access it.

Check for File Corruption

If the certificate file is corrupt, we may see unusual characters or binary content when we open it in a text editor. We can try re-downloading or regenerating the certificate from the certificate authority (CA).

Convert Between Certificate Formats if Necessary

If the certificate is in PKCS#7 format, OpenSSL cannot directly read it as a standard PEM certificate. We can convert it with the following command:

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem

This converts a PKCS#7 certificate (.p7b) to PEM format, making it compatible with OpenSSL’s x509 commands.

How to normalize the Certificate

Here are a few steps our Support Techs employ to normalize the certificate:

1. First, we run it through dos2unix:

dos2unix cert.pem

2. Then we run it through the fold:

fold -w 64 cert.pem

[Couldn’t fix the error? We can help you fix it]

 

Conclusion

In short, we saw how our Support Techs resolve the OpenSSL queries for our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

2 Comments

  1. Michael White

    > “Like the prior, this should also be terminated with a new line.”

    This was my problem. Picky is right! Thanks for the post, Nicky!

    Reply
    • Hiba Razak

      Thanks for the feedback.We are glad to know that it worked for you ? .

      Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.