【发布时间】:2021-01-29 20:20:07
【问题描述】:
我正在使用 Matlab Compiler SDK 将一些 Matlab 代码编译为 .net DLL,我在 dotnet code 5 项目中用作依赖项。
该项目正在AWS Docker image for writing Lambda in dotnet 5 内运行。
MathWorks 文档指出,设置环境变量 LD_LIBRARY_PATH 是此功能正常工作的关键。
问题是我不能再使用自签名证书(所有 AWS 服务 DynamoDB、S3 等)向 https 端点发出请求。
当我用 Matlab 库取出 LD_LIBRARY_PATH 时,问题就消失了,但当然,当我这样做时,Matlab 二进制文件不再工作了。
我一直在阅读文章like this one,但我没有设法解决这个 SSL 问题,我当然可以绕过但我不打算这样做。
.net 异常
无法建立 SSL 连接,请参阅内部异常。这 根据验证程序,远程证书无效。
内部异常:远程证书无效,因为 > 证书链中的错误:PartialChain
我发现导致此异常的特定库是:
- /opt/mcr/v99/bin/glnxa64/libssl.so.1.1
- /opt/mcr/v99/bin/glnxa64/libssl.so.1
- /opt/mcr/v99/bin/glnxa64/libcrypto.so.1.1
- /opt/mcr/v99/bin/glnxa64/libcrypto.so.1
它们由 Matlab Runtime 提供,并通过环境变量 LD_LIBRARY_PATH 链接。
我试图删除这些并链接系统,以这种方式我修复 SSL 问题,但我中断 Matlab 执行。
有用的文章
- https://it.mathworks.com/support/search.html/answers/513449-what-unable-to-launch-the-matlabwindow-application-during-installation.html?fq=asset_type_name:answer%20category:support/introduct1740&page=1
- https://www.bswen.com/2018/11/others-Openssl-version-cause-error-when-loading-shared-libraries-libssl.so.1.1.html
- https://itectec.com/matlab/matlab-how-to-configure-matlab-to-allow-access-to-self-signed-https-servers/
【问题讨论】:
-
“DLL”和“LD_LIBRARY_PATH”不属于同一个问题。也许您可以澄清一下您在哪个平台上(看起来像 Linux,但“DLL”?)以及您的路径上有哪些不同的 SSL 库。
-
嗨,是的,我在 Linux (Docker) 上,dotnet 核心的 DLL 依赖项是正常的。事实上,Matlab Compiler SDK 就是一个用于创建这种“通用”DLL 的工具。 it.mathworks.com/help/compiler_sdk/dotnet/…我将添加有关路径中文件的更多详细信息。
-
我不明白。这是否以某种方式在 Linux 上运行 Windows DLL 二进制文件?叹息……
-
这是 dotnet core 的重点。
标签: .net docker matlab ssl shared-libraries