【问题标题】:Using JDBC with PySpark over SSL通过 SSL 使用 JDBC 和 PySpark
【发布时间】:2021-06-01 05:33:10
【问题描述】:

我正在尝试使用 ssl 通过 jdbc 连接到 postgres 服务器,但我很难弄清楚如何连接。现在我有:

    jdbcDF = spark.read \
        .format("jdbc") \
        .option("url", "jdbc:postgresql:<URL>") \
        .option("dbtable", "schema.tablename") \
        .option("user", "postgress") \
        .option("password", "<Password>") \
        .option("driver", "org.postgresql.Driver") \
        .option("useSSL", "true") \
        .option("ssl", "true") \
        .option("sslmode", "verify-ca") \
        .load()

我的本​​地机器上有证书、root 和密钥,但出现错误:

Py4JJavaError:调用 o3419.load 时出错。 : org.postgresql.util.PSQLException: FATAL: 连接需要有效的客户端证书

【问题讨论】:

    标签: ssl jdbc pyspark


    【解决方案1】:

    似乎 jdbc over pyspark 需要证书采用非常特定的格式。它们必须是 DER 格式(并且密钥必须是 pk8 格式)。要获取 DER 格式的密钥,您可以在 ubuntu 上运行:

    openssl pkcs8 -topk8 -inform PEM -in dev-client-key.pem -outform DER -out dev-client-key.pk8 -v1 PBE-MD5-DES
    

    对于根证书和客户端证书,请使用以下内容:

    openssl x509 -in ssl-key.key -out ssl-cert.der -outform DER 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多