到RDS的Springboot连接引发异常”;原因:java.security.cert.CertificateExpiredException:NotAfter:Fri Mar 06 00:54:04 EAT 2020;
我的应用程序正在连接AmazonRDS,突然它开始抛出这个异常到RDS的Springboot连接引发异常”;原因:java.security.cert.CertificateExpiredException:NotAfter:Fri Mar 06 00:54:04 EAT 2020;,java,mysql,spring,spring-boot,rds,Java,Mysql,Spring,Spring Boot,Rds,我的应用程序正在连接AmazonRDS,突然它开始抛出这个异常 2020-03-06 11:08:41.866 INFO 20878 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2020-03-06 11:08:52.791 ERROR 20878 --- [ main] com.zaxxer.hikari.pool.H
2020-03-06 11:08:41.866 INFO 20878 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-03-06 11:08:52.791 ERROR 20878 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:338) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.negotiateSSLConnection(NativeAuthenticationProvider.java:777) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:486) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1340) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.NativeSession.connect(NativeSession.java:157) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:956) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:826) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
... 56 common frames omitted
Caused by: javax.net.ssl.SSLHandshakeException: NotAfter: Thu Mar 05 21:54:04 GMT 2020
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267) ~[na:na]
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:641) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:460) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360) ~[na:na]
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396) ~[na:na]
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) ~[na:na]
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) ~[na:na]
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181) ~[na:na]
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164) ~[na:na]
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1460) ~[na:na]
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1368) ~[na:na]
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437) ~[na:na]
at com.mysql.cj.protocol.ExportControlled.performTlsHandshake(ExportControlled.java:336) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.StandardSocketFactory.performTlsHandshake(StandardSocketFactory.java:188) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeSocketConnection.performTlsHandshake(NativeSocketConnection.java:99) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at com.mysql.cj.protocol.a.NativeProtocol.negotiateSSLConnection(NativeProtocol.java:329) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
... 63 common frames omitted
Caused by: java.security.cert.CertificateExpiredException: NotAfter: Thu Mar 05 21:54:04 GMT 2020
at java.base/sun.security.x509.CertificateValidity.valid(CertificateValidity.java:274) ~[na:na]
at java.base/sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:669) ~[na:na]
at java.base/sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:642) ~[na:na]
at com.mysql.cj.protocol.ExportControlled$X509TrustManagerWrapper.checkServerTrusted(ExportControlled.java:383) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
at java.base/sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:1465) ~[na:na]
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:625) ~[na:na]
... 77 common frames omitted
我的application.properties文件
#==============================
# MYSQL CONNECTION
#==============================
spring.datasource.url=jdbc:mysql://ip:3306/dbName?user=userName
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
我可能更改了RDS中的参数组,只是为了增加
有什么问题吗 只需禁用mysql与ssl的连接即可
#==============================
# MYSQL CONNECTION
#==============================
spring.datasource.url=jdbc:mysql://ip:3306/dbName?user=userName&useSSL = false
只需使用ssl禁用mysql连接
#==============================
# MYSQL CONNECTION
#==============================
spring.datasource.url=jdbc:mysql://ip:3306/dbName?user=userName&useSSL = false
您不需要禁用SSL连接设置
useSSL=false
。实际上,这是AWS不推荐的做法
在很久没有使用我在过去构建的服务之后,我今天遇到了完全相同的问题
我在AWS RDS控制台->左侧菜单->证书更新->选择我的数据库->立即更新中解决了这个问题。
它将使RDS实例重新启动。实例重新启动后,应用程序将能够再次连接到数据库
我希望它能有所帮助。您不需要禁用SSL连接设置
usesl=false
。实际上,这是AWS不推荐的做法
在很久没有使用我在过去构建的服务之后,我今天遇到了完全相同的问题
我在AWS RDS控制台->左侧菜单->证书更新->选择我的数据库->立即更新中解决了这个问题。
它将使RDS实例重新启动。实例重新启动后,应用程序将能够再次连接到数据库
我希望这会有所帮助。100%同意不使用usesl=false。这应该是可以接受的答案!非常感谢。100%同意不使用useSSL=false。这应该是可以接受的答案!非常感谢。如果SSL不工作,修复方法是禁用SSL?我不认为这是问题的答案。如果SSL不起作用,修复方法是禁用SSL?我认为这不是问题的答案。