nifi连接Sql server数据库报错TLS问题
背景:
服务器:Linux
nifi版本是:1.21.0
Sql Server版本是:10.50.6000.34
我使用generateTableFetch/queryDatabaseTable连接Sqr Server时报错:
(驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。无法通过TLS1与客户端建立…请使用TLSv1.2等
于是我在window启动nifi连接Sql Server没有这个问题,在Linux上就有这个问题,两个除了jdk不同,其余的都是相同的版本,于是我推测时jdk配置的问题,于是我发现了Linux中的jdk中限制禁止使用TLSv1,
具体就是下面这个配置:jdk.tls.disabledAlgorithms
我把TLSv1,TLSv1.1去掉就可以了(表示不禁止)
jdk安装的目录下这个文件夹:$JAVA_HOME/jre/lib/security/java.security
**jdk.tls.disabledAlgorithms**=SSLv3, RC4, DES, MD5withRSA, \
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
include jdk.disabled.namedCurves
重启nifi,发现问题不再复现,成功连接和访问SqlServer;
后面推测可能是我的SqlServer版本太老了使用的时TSLv1,而NIFI使用的jdk刚好禁用了TSLv1;
参考:https://community.cloudera.com/t5/Support-Questions/Nifi-SSL-TLS-qestion/td-p/285528