前面在将公司的.NET Core项目升级为3.1之后,在开发和测试环境都是能够正常运行的。
但是非常不幸,在进行生产的docker启动之后,出现了一个数据库连接的异常。

ssl_choose_client_version:unsupported protocol

一开始以为是数据库的连接字符串配置有误或者是项目的服务器因为网络原因连接数据库失败,后来经过排查都是没有问题。
仔细分析异常信息,提示说ssl的问题,我就在开发环境的服务器上查看OpenSSL的版本,再对比生产服务器上的OpenSSL的版本,终于让我发现问题:

开发环境的openssl:1.2.1
生产环境的openssl:1.0.1

最后为了能够兼容生产环境中的低版本,我就在生成镜像的Dockerfile中添加

RUN sed -i ‘s/TLSv1.2/TLSv1.0/g’ /etc/ssl/openssl.cnf

然后重新创建镜像并在服务器上启动,这时候就能正常连接到MSSQL了。

大家有问题或者想和我交流的也可以关注我的微信公众号:
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐