如何配置Kafka connect jdbc sink connector for postgresql with ssl postgres authentication?

xcitsw88  于 11个月前  发布在  Apache
关注(0)|答案(2)|浏览(98)

我有一个工作的jdbc sink连接器配置为postgres使用用户名和密码配置:

{
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "connection.url": "jdbc:postgresql://localhost:5432/postgres",
    "connection.user": "postgres-user",
    "connection.password": "postgres-pw",
    "topics.regex": "my-topic",
    "transforms": "unwrap",
    "transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
    "transforms.unwrap.drop.tombstones": "false",    
    "key.converter": "org.apache.kafka.connect.json.JsonConverter",
    "key.converter.schemas.enable": "false",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "value.converter.schemas.enable": "false",
    "auto.create": "true",
    "insert.mode": "upsert",
    "auto.evolve": "true",
    "table.name.format" : "${topic}",
    "pk.mode": "record_key",
    "pk.fields": "id",
}

字符串
但我想连接相同的连接器到postgres服务器,使用ssl连接,需要用户名,.cert文件和.key文件。
但是在文档中我只看到ssl.rootcertfile配置选项,这与证书和密钥文件不一样。
我想知道是否可以在连接器配置中设置.cert.key文件?

5w9g7ksd

5w9g7ksd2#

我自己设法找到了答案:所以实际上所有必需的属性都可以根据文档进入连接url,如下所示:

jdbc:postgresql://localhost:5432/postgres?sslmode=require&sslcert=/path/to/certfile.crt&sslkey=/path/to/keyfile.key

字符串
在我的例子中,另一件非常重要的事情是,我使用的Kafka连接镜像(这是融合镜像)只能使用DER密钥文件,而不能接受PEM密钥文件。所以我必须使用以下命令将我的pem文件转换为der文件:

openssl pkcs8 -topk8 -inform PEM -outform DER -in postgresql.key -out -no crypt postgresql.pk8


然后使用输出密钥文件postgresql.pk8作为连接字符串中sslkey的路径。

相关问题