Loopback4使用自签名证书调用HTTPS / REST服务

问题描述

如何在带有OpenApi连接器的Loopback4中使用自签名证书调用https / rest端点?有没有允许这种证书的选项?

当我尝试调用service.operation()时,出现以下异常:

Unhandled error in GET /user/8f9d1e34-c340-4ebe-af11-fa0c4575f676: 500 FetchError: request to https://localhost:8243/scim2/1.0.0/Users/8f9d1e34-c340-4ebe-af11-fa0c4575f676 Failed,reason: unable to verify the first certificate
    at ClientRequest.<anonymous> (D:\DEV_BTC\GIT\Foton\PIX\application\composite-services\perfil-usuario-ms\node_modules\node-fetch\lib\index.js:1461:11)
    at ClientRequest.emit (events.js:315:20)
    at TLSSocket.socketErrorListener (_http_client.js:426:9)
    at TLSSocket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processticksAndRejections (internal/process/task_queues.js:84:21)

REST Connector的文档中提到了一个名为"strictSSL": false的参数,以允许自签名SSL证书。是否有类似于OpenAPI连接器的东西?

谢谢!

解决方法

打开错误报告并提出功能请求后,Loopback的团队创建了loopback-connector-openapi to handle this option的新版本。

基本上,您需要将此选项添加到数据源config

const config = {
  (...)
  httpClientOptions: {
    agent: new https.Agent({rejectUnauthorized: false}),}
  (...)
}