0

我正在尝试使用 NXLog 发布到 https 中的服务。不幸的是,每次发布尝试时,我都会收到此错误:

2018-12-19 09:11:14 ERROR SSL certificate verification failed: unable to get local issuer certificate (err: 20)

我们试图访问的服务是一个带有“让我们加密”证书的 HTTPS 端点。使用 Postman 等工具发布到端点没有问题。但是 NXLog 一直在抱怨。

我尝试使用 https 模块的多个选项,但由于我并不真正了解它们是什么并且文档不是很有帮助,因此我需要帮助。

我试图把它HTTPSAllowUntrustedTRUE但它并没有改变任何东西。还尝试提供.pem来自 Mozilla 和各种来源的文件HTTPSCADirHTTPSCAFile但这也没有改变任何东西。

这是我最新的.conf文件尝试。欢迎任何能够配置 SSL 的帮助。

Panic Soft
#NoFreeOnExit TRUE

define ROOT     C:\Program Files (x86)\nxlog
define CERTDIR  %ROOT%\cert
define CONFDIR  %ROOT%\conf
define LOGDIR   %ROOT%\data
define LOGFILE  %LOGDIR%\nxlog.log
LogFile %LOGFILE%

Moduledir %ROOT%\modules
CacheDir  %ROOT%\data
Pidfile   %ROOT%\data\nxlog.pid
SpoolDir  %ROOT%\data

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Extension _charconv>
    Module      xm_charconv
    AutodetectCharsets iso8859-2, utf-8, utf-16, utf-32
</Extension>

<Extension csv>
    Module xm_csv
    Fields $contentName, $deviceName, $startTime, $endTime, $contentId, $deviceId
    FieldTypes string, string, string, string, string, string
    Delimiter ,
</Extension>

<Extension exec>
    Module      xm_exec
</Extension>

<Extension json>
    Module  xm_json
</Extension>

<Input in>
    Module          im_file
    File            "C:\\MagicInfo Premium\\runtime\\upload\\pop\\report\\*W*.csv"
    Exec            csv->parse_csv(); to_json();
</Input>

<Output http>
    Module               om_http
    URL                  https://my-service.com/api/v1/proof-of-play-log/
    HTTPSCAFile          %CERTDIR%/cacert.pem
    ContentType          application/json
</Output>

<Route 1>
    Path            in => http
</Route>

总结一下:我需要什么 .pem 文件以及需要设置什么参数才能对具有“让我们加密”证书的 https 端点进行简单的发布。

编辑

最后,我意识到 NXLog 完全是错误的并且编码很糟糕,所以我们改用另一个解决方案......

4

1 回答 1

1

可能缺少中间体

这种情况很少见,可能无法解决您的问题,但它可以解决某些症状完全相同的问题。

不受信任的选项可能会失败,因为它可能允许不受信任的证书链,但不允许孤立/不完整的链(略有不同)。虽然,再想一想,这可能无法区分......

但如果是这种情况,您想要包含的额外证书是https://letsencrypt.org/certificates/的“活动”和“备份”部分中列出的中间体

于 2018-12-19T17:04:18.330 回答