我正在使用 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 端点发出请求。
当我取出 LD_LIBRARY_PATH
时问题就消失了使用 Matlab 库,但当然,当我这样做时,Matlab 二进制文件不再起作用。
我一直在看文章like this one ,但我没有设法解决这个 SSL 问题,我当然可以绕过,但我不打算这样做。
.net 异常
The SSL connection could not be established, see inner exception. The remote certificate is invalid according to the validation procedure.
INNER EXCEPTION: The remote certificate is invalid because of errors in > the certificate chain: PartialChain
我发现导致此异常的特定库是:
它们由 Matlab Runtime 提供,并通过环境变量
LD_LIBRARY_PATH
链接。 .我试图删除这些并链接系统,这样我修复 SSL 问题,但我 休息 Matlab 执行。
实用文章
最佳答案
这篇文章中写了一个有效的解决方案:https://www.scivision.dev/matlab-websave-ssl-certificate/
连接到 Docker 镜像并检查您的 /etc/ssl/certs/*.srt
中的内容很有用。 .
我通过添加 SSL_CERT_FILE
解决了我的问题引用文件的环境变量:
export SSL_CERT_FILE=/etc/ssl/certs/ca-bundle.crt
现在我在 Docker Lambda 上运行了 Matlab。
关于.net - SSL 被 LD_LIBRARY_PATH 和 Matlab 破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65961176/