使用LD_LIBRARY_PATH和Matlab破坏SSL



我正在使用Matlab编译器SDK将一些Matlab代码编译到.net DLL,我将其用作dotnet代码5项目中的依赖项
该项目在用于在dotnet 5中编写Lambda的AWS Docker映像中运行。

MathWorks文档指出,设置env-varLD_LIBRARY_PATH是实现此功能的关键
中断的是,我无法再使用自签名证书(所有AWS服务DynamoDB、S3等)向https端点发出请求。
当我使用Matlab库取出LD_LIBRARY_PATH时,问题消失了,但当然,当我这样做时,Matlab二进制文件不再工作
我一直在读这样的文章,但我没有设法解决这个SSL问题,当然我可以绕过它,但我不打算。

.net异常

无法建立SSL连接,请参阅内部异常。这个根据验证过程,远程证书无效。

INNER异常:由于>中的错误,远程证书无效;证书链: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&第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/

本文编写了一个有效的解决方案: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。

相关内容

  • 没有找到相关文章

最新更新