LD_LIBRARY_PATH 和 Matlab 破坏了 SSL
SSL broken with LD_LIBRARY_PATH and Matlab
我正在使用 Matlab Compiler SDK 将一些 Matlab 代码编译为 .net DLL,我在 dotnet 代码 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异常
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
我发现导致此异常的特定库是:
- /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 提供并link通过环境变量LD_LIBRARY_PATH
编辑。
我试图删除那些和 link 系统一,这样我 修复 SSL 问题,但我 break 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/
在此 post 中编写了一个有效的解决方案: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 运行。
我正在使用 Matlab Compiler SDK 将一些 Matlab 代码编译为 .net DLL,我在 dotnet 代码 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异常
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
我发现导致此异常的特定库是:
- /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 提供并link通过环境变量LD_LIBRARY_PATH
编辑。
我试图删除那些和 link 系统一,这样我 修复 SSL 问题,但我 break 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/
在此 post 中编写了一个有效的解决方案: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 运行。