在Azure上,我找到了4个证书:
ClearDB CA Certificate
Client Certificate
Client Private Key
Client Certificate Bundle(for Windows only)
我已经使用ClearDB CA创建了trustStore
,就像在这里被告知的那样
How to connect to a remote MySQL database via SSL using Play Framework?
keytool -import -alias mysqlServerCACert -file cleardb.pem -keystore truststore.jks
设置如下的系统属性:
System.setProperty("javax.net.ssl.trustStore", "path/truststore.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
为jdbc url添加了参数
?useSSL=true&requireSSL=true&verifyServerCertificate=true
但我仍然得到例外
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到所请求目标的有效证书路径
我真的很困惑。我应该使用哪种证书。其他证书是什么? 将不胜感激任何帮助。
答案 0 :(得分:0)
@OlegKuts,根据ClearDB FAQ关于强制执行客户端SSL(或x.509)身份验证,我认为如果它来自ClearDB,我应该使用ClearDB CA证书。
我的ClearDB群集需要额外的安全选项。如何实施客户端SSL(或x.509)身份验证?
我们运营自己的CA,我们很乐意为您的帐户生成x.509用户身份验证证书。请send us a support request(需要登录)获取x.509证书。
同时,根据ClearDB的帮助&支持page(其Java链接不可用,但请参阅后面的MySQL 5.5链接),您需要按照MySQL连接器文档5.5 Connecting Securely Using SSL再试一次。