IAM-Service - unable to get local issuer certificate

Beim Versuch den IAM-Server per IAM-Client zu kontaktieren kommt folgende Fehlermeldung nach dem Aufruf von

1
const iamClient = await IAMClient.createInstance(clientOptions);

Fehler:

1
2
3
4
5
6
7
{ AggregateError:
RequestError: unable to get local issuer certificate
at ClientRequest.req.once.err (/home/notes/Documents/node-api/DLRWebsucheRestAPI/node_modules/openid-client/node_modules/got/index.js:182:22)
RequestError: unable to get local issuer certificate
at ClientRequest.req.once.err (/home/notes/Documents/node-api/DLRWebsucheRestAPI/node_modules/openid-client/node_modules/got/index.js:182:22)
at rejected (/home/notes/Documents/node-api/DLRWebsucheRestAPI/node_modules/p-some/index.js:49:11)
at process._tickCallback (internal/process/next_tick.js:68:7) name: 'AggregateError' }

Da ich in meiner Anwendung mehrere Schnittstellen zu verschiedenen Services verwende und damit auch mehrere Zertifikate, hat es etwas gedauert, bis die Ursache gefunden war. Da wäre dann eine etwas aussagekräftigere Fehlermeldung (welches cert-file?) hilfreich.

Ursache:

Das verwendete Zertifikat des IAM-Service (in der config.js: iam_server_ca_cert ) enthält keine certificate chain sondern nur das Zertifikat.

Lösung:

Die in der config.js unter iam_server_ca_cert angegebene Datei durch ein File ersetzen, das neben dem Zertifikat auch die certificate chain enthält.