首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC驱动程序与Server连接时的SSl握手验证错误

问JDBC驱动程序与Server连接时的SSl握手验证错误
EN

Stack Overflow用户
提问于 2018-07-24 02:40:35
回答 2查看 7.2K关注 0票数 4

我试图在春季引导应用程序中使用它的最新JDBC驱动程序从linux连接到Server。当我使用eclipse运行junit时,我会得到一个"ssl握手“错误。当我使用mvn在命令行中运行时,一切都很好。

我是错过了什么,还是在配置中犯了什么错误:

代码语言:javascript
复制
@RunWith(SpringRunner.class)
@SpringBootTest
public class BarcodeRepositoryTest {

    @Autowired
    private BarcodeRepository addressRepository;

    @Test
    public void testFetchData() {
        List<Barcode> addresses = addressRepository.findAll();

        assertNotNull(addresses);
        assertNotEquals(0, addresses.size());
    }
}




spring.datasource.url=jdbc:sqlserver://[server]:1433;databaseName=ITTemp
spring.datasource.username=[username]
spring.datasource.password=[password]
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
spring.jpa.hibernate.ddl-auto=none

错误堆栈跟踪:

由: sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1120):证书不符合算法约束在sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(SSLContextImpl.java:1044)的java.security.cert.CertificateException ~na:1.8.0_172 at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:986) ~na:1.8.0_172 at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)由于: java.security.cert.CertPathValidatorException:算法约束检查键大小限制导致的~na:1.8.0_172 . 86通用帧省略。与证书一起使用的RSA 1024位密钥: CN=SSL_Self_Signed_Fallback。sun.security.util.DisabledAlgorithmConstraints$KeySizeConstraint.permits(DisabledAlgorithmConstraints.java:817) ~na:1.8.0_172 at sun.security.util.DisabledAlgorithmConstraints$Constraints.permits(DisabledAlgorithmConstraints.java:419) ~na:1.8.0_172 at sun.security.util.DisabledAlgorithmConstraints.permits(DisabledAlgorithmConstraints.java:167) ~na:1.8.0_172 at sun.security.provider.certpath.AlgorithmChecker.check(AlgorithmChecker.java:332) ~na:1.8.0sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(SSLContextImpl.java:1116) ~na:1.8.0_172的_172

当我从eclipse运行测试用例时,我会看到这个错误。

EN

回答 2

Stack Overflow用户

发布于 2019-06-18 03:12:26

我在SQL Server 2014和Open JDK 11中遇到了同样的问题。通过按照以下说明为Server 2014实例创建一个自签名证书,我最终解决了这个问题:

https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/enable-encrypted-connections-to-the-database-engine?view=sql-server-2014

此问题是因为SQL Server生成的默认自签名证书使用JDK在尝试验证Server实例提供的证书时不允许的一个或多个算法。关键是生成一个将被JDK接受的新的自签名证书(遵循上面的指导)。在不允许的算法中重新添加几乎肯定会导致自己使用较弱的加密。

票数 7
EN

Stack Overflow用户

发布于 2018-07-24 10:40:43

它看起来像是客户机和服务器之间不兼容的SSL算法,参见$JAVA_HOME/jre/lib/security/java.security中的jdk.tls.disabledAlgorithms。

服务器端的java版本与客户端的java版本相同吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51489695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档