Search code examples
linuxubuntunginxsslzerossl

SSL on Nginx throws error (SSL: error:0908F066:PEM routines:get_header_and_data:bad end line)


I generated my SSL from SSLforFree/ZeroSSL, and according to the steps for installation listed on their website, https://zerossl.com/help/installation/nginx/

  1. Downloaded the SSL Files
  2. Moved them to the Server
  3. Merged the certificate.crt & ca_bundle.crt with (cat certificate.crt ca_bundle.crt >> certificate.crt)
  4. Added following lines in the hosts file of nginx:
    ssl on;
    ssl_certificate /etc/ssl/certificate.crt;
    ssl_certificate_key /etc/ssl/private.key;
  5. Restarted Nginx Server with (sudo service nginx restart)
  6. Error received, and checked the error details by (journalctl -xe)
  7. Error was:
    nginx: [emerg] PEM_read_bio_X509_AUX
    (SSL: error:0908F066:PEM routines:get_header_and_data:bad end line)

Solution

  • Merging files with cat certificate.crt ca_bundle.crt >> certificate.crt, merges the file without adding any next line character in it. After merging the files, open the newly created file, i.e, certificate.crt, and you'll see the file structure as follows:
    -----BEGIN CERTIFICATE-----
    certificate-1-text
    -----END CERTIFICATE----------BEGIN CERTIFICATE-----
    certificate-2-text
    -----END CERTIFICATE-----

    If your certificate looks like this, you can fix this by adding adding a new line character just before 5 hyphens of second begin certificate, i.e, it should look as follows after editing:
    -----BEGIN CERTIFICATE-----
    certificate-1-text
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    certificate-2-text
    -----END CERTIFICATE-----