来自带有 mbedtls TLS 的 Mongoose Web 服务器的错误消息

Error messages from Mongoose web server with mbedtls TLS

我正在英特尔 SGX 上构建一个 HTTP(S) 服务器,使用 mbedtls 作为我的 TLS 库。

我可以使用 HTTP 按预期提供内容,但是当使用 mbedtls 切换到 TLS/SSL 时,我遇到了一些更复杂的问题,错误消息也很难理解。

具体来说,当我使用“https://”前缀访问我的网站时,我可以看出 mongoose/mbedtls 出去读取 cert.pem 和 key.pem,然后使对“/”的 recv 调用。在该 recv 调用期间,它会出现以下错误:

mg_ssl_if_mbed_err 0x7f9e8c023060 mbedTLS error: -0x7780

从 mbedtls src 我可以读到这个不太有用的解释:

#define MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE -0x7780 /**< A fatal alert message was received from our peer. */

我的起点是simplest_web_server_ssl。

问题: 如何启用 mg 和 mbedtls 调试日志记录? 我如何解释这些错误(或者甚至;这个错误可能是什么原因)?

真诚感谢任何提示!

https://github.com/cesanta/mongoose/blob/6.16/mongoose.c#L5161https://github.com/cesanta/mongoose/blob/6.16/mongoose.c#L5075

因此您可以通过调用 cs_log_set_level(LL_VERBOSE_DEBUG)

来提高调试日志级别

您看到的错误很可能是由于您的客户不接受的无效证书。

尝试通过curl -k https://IPADDR

访问您的服务器

-k 选项禁用证书验证。如果该 curl 命令有效,那么只需修复您的证书 - 您的 C 代码可以正常工作。