Azure Postgres Database requires SSL Connection from Corda

◇◆丶佛笑我妖孽 提交于 2020-04-30 15:42:26

问题


Using the managed Postgres database from Azure a Corda node is unable to connect to the database on start.

    [ERROR] 2019-01-23T11:28:50,937Z [main] internal.Node.run - Exception during node startup {}
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: SSL connection is required. Please specify SSL options and retry.
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:512) ~[HikariCP-2.5.1.jar:?]
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:105) ~[HikariCP-2.5.1.jar:?]
        at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:71) ~[HikariCP-2.5.1.jar:?]
        at net.corda.node.internal.DataSourceFactory.createDataSource(DataSourceFactory.kt:38) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.DataSourceFactory.createDataSource$default(DataSourceFactory.kt:35) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNodeKt.configureDatabase(AbstractNode.kt:927) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNode.initialiseDatabasePersistence(AbstractNode.kt:695) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.Node.initialiseDatabasePersistence(Node.kt:347) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:207) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.Node.start(Node.kt:361) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:203) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:126) [corda-node-3.3-corda.jar:?]
        at net.corda.node.Corda.main(Corda.kt:13) [corda-node-3.3-corda.jar:?]

My node.conf includes a standard Postgres configuration as recommended in this answer.

     dataSourceProperties = {
        dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
        dataSource.url = "jdbc:postgresql://[HOST]:[PORT/[DATABASE]"
        dataSource.user = [USERNAME]
        dataSource.password = [PASSWORD]
    }
    database {
        schema = "corda"
        transactionIsolationLevel = "READ_COMMITTED"
    }

How can I ensure Postgres is connecting over SSL?


回答1:


Postgres allows for setting the ssl mode directly in the jdbc string. See updated configuration below which includes "?ssl=true".

     dataSourceProperties = {
        dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
        dataSource.url = "jdbc:postgresql://[HOST]:[PORT/[DATABASE]?ssl=true"
        dataSource.user = [USERNAME]
        dataSource.password = [PASSWORD]
    }
    database {
        schema = [SCHEMA]
        transactionIsolationLevel = "READ_COMMITTED"
    }

The database.schema property is optional and Corda Enterprise only. It represents the database's namespace.



来源:https://stackoverflow.com/questions/54326843/azure-postgres-database-requires-ssl-connection-from-corda

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!