使用JDBC和PySpark over SSL

pieyvz9o  于 2023-04-05  发布在  Spark
关注(0)|答案(1)|浏览(142)

我尝试使用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()

我在本地机器上有证书、根目录和密钥,但我收到错误:
Py4Java错误:调用o3419.load时出错。:org.postgresql.util.PSQLException:致命:连接需要有效的客户端证书

0x6upsns

0x6upsns1#

看起来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

相关问题