【问题标题】:mysql ssl spring boot 2mysql ssl 春季启动 2
【发布时间】:2018-09-17 15:53:01
【问题描述】:

您好,我有一个 mysql 服务器和一个在 gcloud 中运行的 kubernetes spring boot 2 Web 服务。所以问题是我不知道如何将我的 client-key.pem 转换为 jks 文件。我已经使用以下命令将 client-key.pem 文件转换为 jks 文件。

keytool -import -trustcacerts -alias root -file client-cert.pem -keystore client-cert.jks

当我在 key.pem 上使用时,相同的命令给我一个错误,keytool error:java.lang.exception: input not an x.509 certificate. pem 文件很好(由谷歌云控制台生成),可以在 mysql 工作台上完美运行。任何帮助,谢谢!

【问题讨论】:

    标签: openssl google-cloud-platform jks


    【解决方案1】:

    PEM 转换为Java KeyStore 有点复杂...

    a) 将证书从PEM 转换为PKCS12

    openssl pkcs12 -export -out client-cert.pkcs12 -in client-cert.pem
    

    b) 创建然后清空信任库KS

    keytool -genkey -keyalg RSA -alias client -keystore truststore.ks
    keytool -delete -alias client -keystore truststore.ks
    

    c) 将CA 导入到信任库KS

    keytool -import -v -trustcacerts -alias client-ca -file client-cert.pem -keystore truststore.ks
    

    d) 创建然后清空 Java KeyStore:

    keytool -genkey -keyalg RSA -alias client -keystore keystore.ks
    keytool -delete -alias client -keystore keystore.ks
    

    e) 将PKCS12 导入空的Java KeyStore

    keytool -v -importkeystore -srckeystore client-cert.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.ks -deststoretype JKS
    

    【讨论】:

      【解决方案2】:

      Martin Zeitler 和我的一位同事为我指明了正确的方向。仍然不是完美的答案,所以我会回答我的问题。 您从谷歌云获得 3 个文件 client.cert.pemclient-key.pemserver-ca.pem。 原来你不需要 server-ca.pem 文件从 mysql 工作台连接到服务器,但是如果你想从 java 连接到服务器,你需要它。 首先 openssl,在任何发行版上使用以下命令安装它。

      sudo apt install openssl -y

      然后键入以下命令:

      openssl pkcs12 -export -out merged.pkcs12 -in client-cert.pem -inkey client-key.pem -certfile server-ca.pem
      keytool -genkey -keyalg RSA -alias client -keystore truststore.jks
      keytool -delete -alias client -keystore truststore.jks
      keytool -import -v -trustcacerts -alias server-ca -file server-ca.pem -keystore truststore.jks
      keytool -genkey -keyalg RSA -alias client -keystore keystore.jks
      keytool -delete -alias client -keystore keystore.jks
      keytool -v -importkeystore -srckeystore merged.pkcs12 -srcstoretype PKCS12 -destkeystore keystore.jks -destkeystore JKS
      

      设置这些 JDBC 参数:

      verifyServerCertificate=true
      useSSL=true
      requireSSL=true
      clientCertificateKeyStorePassword=password
      clientCertificateKeyStoreUrl=keystore.jks
      trustCertificateKeyStorePassword=password
      trustCertificateKeyStoreUrl=truststore.jks
      

      就是这样,伙计们!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-30
        • 2018-10-28
        • 2021-01-25
        • 2021-09-20
        • 2017-09-11
        • 2015-04-18
        • 2017-06-24
        • 2015-08-22
        相关资源
        最近更新 更多