ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

java程序使用ssl证书连接mysql

2021-09-24 18:01:38  阅读:234  来源: 互联网

标签:java pem ca ssl cert client key mysql


1. 在mysql服务器上生成证书
    openssl genrsa 2048 > ca-key.pem
    openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
    openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
    openssl rsa -in server-key.pem -out server-key.pem
    openssl x509 -req -in server-req.pem -days 3600  -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
    

2. 生成客户端连接mysql证书
    openssl req -newkey rsa:2048 -days 3600  -nodes -keyout client-key.pem -out client-req.pem
    openssl rsa -in client-key.pem -out client-key.pem
    openssl x509 -req -in client-req.pem -days 3600  -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
    openssl verify -CAfile ca.pem server-cert.pem client-cert.pem

3. 验证证书
    openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
    输出结果:
        server-cert.pem: OK
        client-cert.pem: OK     
4. 配置mysql
    [client]
    ssl-cert = /etc/mysql_cert/ssl/client-cert.pem 
    ssl-key = /etc/mysql_cert/ssl/client-key.pem
    注意:如果是做了主从,需要把主的证书拷贝到从
    
    [mysqld]
    ssl-ca=/etc/mysql_cert/ssl/ca.pem
    ssl-cert=/etc/mysql_cert/ssl/server-cert.pem
    ssl-key=/etc/mysql_cert/ssl/server-key.pem

    show global variables like '%ssl%';

 

 

5. 授权用户ssl登录
    grant select on *.* to 'paylabs_app2_plb'@'xxxxx' identified by '123456' require ssl;
    使用\s;查看用户是否使用证书登录

  

 

 

 

 

6. java程序连接mysql
    需要将mysql上的client证书和ca拷贝到应用服务器
    生成以下两个文件:
    keytool -importcert -alias Cacert -file ca.pem  -keystore truststoremysql -storepass 123456
    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -name "xxx" -passout pass:123456 -out client-keystore.p12
    keytool -importkeystore -srckeystore client-keystore.p12 -srcstoretype pkcs12 -srcstorepass 123456-destkeystore keystoremysql -deststoretype JKS -deststorepass 123456

  

  

标签:java,pem,ca,ssl,cert,client,key,mysql
来源: https://www.cnblogs.com/The-day-of-the-wind/p/15331513.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有