.NetCore3.1發布在CentOS后連接SqlServer數據庫異常(SslException)


 

本次部署,基於docker進行,拉取的mcr.microsoft.com/dotnet/core/aspnet:3.1鏡像。 這里,我沒有使用Dockerfile文件來創建鏡像。

Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL

數據庫連接成功,但是發生錯誤,具體如下圖:

發生這種錯誤,主要是由於,在數據庫登錄驗證階段使用了 SSL,導致身份驗證不通過。允許的 ssl 最低版本和 SQL Server 數據庫版不匹配。在這里,我采取基於上面拉取的鏡像,啟動容器進入容器內部,修改配置信息,具體代碼如下:

sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf

基於dockerfile的朋友,可以在Dockerfile配置文件中,增加如下代碼,創建容器時來執行一個命令操作。

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

我把修改后的容器,從新制作了一個鏡像,暫且命名為aspnetcoressl吧。docker images查看我們剛才創建的鏡像。

[root@iZm5ec2cjkf2wt7aqpfw72Z ~]# docker images
REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
aspnetcoressl                          3.1                 d619e179fc96        2 hours ago         207MB

aspnetcoressl是我們修改過配置文件后創建的鏡像,也就意味着我們可要直接使用該鏡像,來運行容器。

docker run --name tiku.api -v /data:/data -p 80:5000 -d d619e179fc96 dotnet /data/wwwroot/TiKu.Api/TiKu.Api.dll

最后,我把修改過的鏡像,推送到docker.io我個人建的倉庫里,如下圖:

 

 執行下面代碼,拉取修改后的鏡像(aspnetcore3.1)。

docker pull lichaoqiang/netcore:3.1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM