如何使用JDBC连接到MySQL与X509?(How to connect to MySQL wit

2019-06-26 08:11发布

我已经成立了一个MySQL(社区服务器,5.1)数据库服务器。

我已经设置了SSL,创建的证书等。

我创建了具有REQUIRES X509属性的用户。

我可以使用利用命令行客户机“的MySQL”和“状态”这个用户连接命令显示SSL是活动的,等

我已经按照从MySQL网站有关导入证书到Java信任库/密钥库文件准确的说明。

我只是不能使用这些连接到数据库。

如果我使用一个用户只使用了信任文件,要求SSL,然后一切都很好。 使用与用户密钥库文件需要X509只是没有拥有它。

似乎有很多的人患有这种挣扎并没有太多的答案,在网络上的证据。 有没有人真正得到了这个工作?

Answer 1:

破获,在此列出,在我的评论页面的底部: http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-using-ssl.html

从字面上花费WEEK您不要这样做,我终于设法使用客户端certifiacte连接后(需要X509用户确定指标)!!!!

rem NOTE: these commands are run using the Java 6 (1.6) JDK as it requires the "-importkeystore" command
rem which is not available before this JDK version.

rem Import the self signed Certifacte Authority certificate into a keystore.
keytool -import -alias mysqlCACert -file ca-cert.pem -keystore truststore -storepass truststore
rem Shows only the signed certificate.
keytool -v -list -keystore truststore -storepass truststore

rem Create a PKCS12 file from an existing signed client certifcate and its private key.
rem set password to "keystore".
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12 -name clientalias -CAfile ca-cert.pem -caname root
rem Import the combined certificate and private key into the keystore.
keytool -importkeystore -deststorepass keystore -destkeystore keystore -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass keystore -alias clientalias

然后,在无论是通过连接网址Java应用程序指定受信任的荣誉证书文件(信任)和客户端证书/密钥文件(密钥库),通过JVM启动参数的参数(-D =,...),或System.setProperty(VAR,VAL),...

它的实际工作!



文章来源: How to connect to MySQL with X509 using JDBC?
标签: mysql ssl jdbc