k8s+springboot+mysql8开启SSL连接
1.确保mysql开启并支持SSLmysql8以后默认开启SSL并生成证书。#查询结果为YESshow variables like 'have_ssl';如果没有开启可以使用自带的mysqld_ssl_rsa_setup工具,执行后重启mysql即可。2.下载mysql的ca证书#查看证书位置,从此位置下载ca.pem文件show variables like 'datadir';3.转为jks
·
1.确保mysql开启并支持SSL
mysql8以后默认开启SSL并生成证书。
#查询结果为YES
show variables like 'have_ssl';
如果没有开启可以使用自带的mysqld_ssl_rsa_setup工具,执行后重启mysql即可。
2.下载mysql的ca证书
#查看证书位置,从此位置下载ca.pem文件
show variables like 'datadir';
3.转为jks文件供jdbc连接时使用
*keytool为jdk自带的工具
keytool.exe -import -alias <aliasName> -file ca.pem -keystore truststore.jks -storepass <passWordValue>
4.将证书做成k8s secret并挂载给各个服务使用。
4.1 创建secret
kubectl create secret generic db-truststore-secret --from-file=./truststore.jks --from-literal=db-trust-sotre-password=Aa123456
[root@etcd1 secret]# kubectl get secret
NAME TYPE DATA AGE
db-truststore-secret Opaque 1 25s
#编辑secrets(本文章无需此操作)
kubectl edit secrets db-truststore-secret
4.2 development文件增加配置
containers:
......
volumeMounts
- name: dbtruststore
mountPath: /etc/truststores
readOnly: true
......
volumes:
- name: dbtruststore
secret:
secretName: 210-db-truststore-secret
# 8进制下444权限的十进制
defaultMode: 292
jdbc-url中加入下面三个参数即可
&sslMode=VERIFY_CA&trustCertificateKeyStoreUrl=file:/etc/truststores/truststore.jks&trustCertificateKeyStorePassword=Aa123456
参考地址
https://kubernetes.io/zh/docs/concepts/configuration/secret
https://blog.csdn.net/weixin_35032509/article/details/113658943
https://zhuanlan.zhihu.com/p/138213717
更多推荐
已为社区贡献1条内容
所有评论(0)