我正在尝试获取一个示例java应用程序来连接到我在GCP中的Mysql gen2实例。我使用SSL,IP地址列入白名单。我已使用mysql命令行确认了与实例的连接,并传入了client-cert.pem,client-key.pem和server-ca.pem。现在为了从spring boot java应用程序连接它,我做了以下事情:
在创建连接之前在main中添加了此代码:
System.setProperty("javax.net.debug", "all");
System.setProperty("javax.net.ssl.trustStore", TRUST_STORE_PATH);
System.setProperty("javax.net.ssl.trustStorePassword", "fake_password");
System.setProperty("javax.net.ssl.keyStore", KEY_STORE_PATH);
System.setProperty("javax.net.ssl.keyStorePassword", "fake_password");
对于jdbc网址,我使用了:jdbc:mysql://1.1.1.1:3306/sampledb?useSSL=true&requireSSL=true
但是我无法连接到实例并从java ssl debug中看到此错误:
restartedMain, RECV TLSv1.1 ALERT: fatal, unknown_ca
%% Invalidated: [Session-2, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA]
restartedMain, called closeSocket()
restartedMain, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: unknown_ca
restartedMain, called close()
restartedMain, called closeInternal(true)
我也尝试过运行
openssl verify -CAfile server-ca.pem client-cert.pem`
得到了这个输出:
error 20 at 0 depth lookup:unable to get local issuer certificate`
关于我可能做错的任何想法?