Nginx SSL certificaat: “bad end line error”

Wanneer je een certificaat bundel creëert voor SSL in Nginx (zie vorige post), kan het zijn dat Nginx een “bad end line error” geeft. Je krijgt dan zo’n error:

nginx: [emerg] PEM_read_bio_X509_AUX("/home/mathias/Sites/certificaat/mactua/ssl_bundle.cert") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)

Dit komt meestal doordat één van de SSL certificaten die je concateneert geen newline heeft op het einde van het bestand. Ergens in het bestand staan de -----END CERTIFICATE----- en -----BEGIN CERTIFICATE----- dan op dezelfde lijn:

-----END CERTIFICATE----------BEGIN CERTIFICATE-----
MIIEYDCCA0igAwIBAgIDAjp7MA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMTQwOTA4MjIyMTAxWhcNMjIwNTIwMjIyMTAxWjCBgTELMAkGA1UE
BhMCTkwxITAfBgNVBAoTGEludGVybWVkaWF0ZSBDZXJ0aWZpY2F0ZTEdMBsGA1UE
CxMURG9tYWluIFZhbGlkYXRlZCBTU0wxMDAuBgNVBAMTJ0ludGVybWVkaWF0ZSBD
ZXJ0aWZpY2F0ZSBEViBTU0wgQ0EgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEP
GkpNxwiDmGZ63GNdIQh7ogwUVVcp7gGVJiafnWs2JbQ4BJjHoKKNCAG2abpX9hK4
NmWFjOQSWTD+CICx/w1Nrln016P6IaWpm06Dahvf/V0eHwYIRoOAs0yQpYpTx0bv
h42NfwQ1t0B6e0oegaPWqSk174u3g9f2q6UF2J6oEPhHXYM9WSW0yDkvB8BCDboR
Qfg6VhFW8bMT3NglYYQ1+VndfdV0nv4pnn0A/Ueb3OWQ6Ercfjgk3fDPib0PSM3d
+tkygLHpQjbP5vimhYdUR8v3lJGZ97RyO8sCAwEAAaOCAR0wggEZMB8GA1UdIwQY
MBaAFMB6mGiNifurBWQMEX2qfWW4ysxOMB0GA1UdDgQWBBRjHKinsZM1jxZ2nuX6
X8jmrb8vuTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBBjA1BgNV
HR8ELjAsMCqgKKAmhiRodHRwOi8vZy5zeW1jYi5jb20vY3Jscy9ndGdsb2JhbC5j
cmwwLgYIKwYBBQUHAQEEIjAgMB4GCCsGAQUFBzABhhJodHRwOi8vZy5zeW1jZC5j
b20wTAYDVR0gBEUwQzBBBgpghkgBhvhFAQc2MDMwMQYIKwYBBQUHAgEWJWh0dHA6
Ly93d3cuZ2VvdHJ1c3QuY29tL3Jlc291cmNlcy9jcHMwDQYJKoZIhvcNAQELBQAD
ggEBAD9XFBXM6iyefu/EIo19K8MivUbCNVXCSDcvV/nqRNP65ulo1B1bZbPK85+8
1nEDXCFCUeVsHkkSwMM8SCCm9qytdmWzK6rwsQkaJdfNyixsGVLH0kwUvHR/plTj
9/A2+VZpcdIhPQwS6PR8BULwXAU/oRzPekEJnehEbBR1mo8UJfdZSCJTShsIuSQB
Qx275wDIVMH7A5O9GXN/e7WVTxUa8wKWCruzZ9pS7gpifkcsTUH+c1a5C2vQNqRh
vPM2w6gkpyaonh9mKO0F4Z5iqvE=
-----END CERTIFICATE----------BEGIN CERTIFICATE-----

Dit los je op door zelf even met Vim (of je lievelingseditor) de end line in orde te brengen.

Nginx even herstarten en alles zou geregeld moeten zijn…