首页 > 解决方案 > 通过 build.gradle 配置 Corda Rpc Ssl 节点

问题描述

通过在 Corda 3.2 Enterprise 中扩展 node.conf 的 rpcSettings,我成功地配置了一个节点以使用 Ssl Rpc:

rpcSettings {
  address="localhost:10006"
  adminAddress="localhost:10046"

  useSsl=true
  ssl {
    keyStorePath="/myhome/certificates/rpcsslkeystore.jks"
    keyStorePassword="xyz"
  }
}

现在我正在尝试将 Ssl 选项添加到 build.gradle 文件中的节点配置中:

import net.corda.cordform.SslOptions

task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
  directory "./build/nodes"
  node {
    name "O=PartyA,L=London,C=GB"
    p2pPort 10005
    rpcSettings {
      address("localhost:10006")
      adminAddress("localhost:10046")

      def mySsl = new SslOptions()       
      mySsl.sslKeystore("/myhome/certificates/rpcsslkeystore.jks")
      mySsl.keyStorePassword("xyz")

      useSsl(true)
      ssl(mySsl)
    ...
}}

问题是生成的 node.conf 现在包含属性“sslKeyStore”而不是预期的“keyStorePath”,因此节点无法加载:

rpcSettings {
  address="localhost:10006"
  adminAddress="localhost:10046"
  ssl {
    keyStorePassword=xyz
    sslKeystore="/myhome/certificates/rpcsslkeystore.jks"
  }
  useSsl=true
}

不过,net.corda.cordform.SslOptions 类没有提供名为 keyStorePath 的方法。

有人知道如何解决这个问题吗?

标签: corda

解决方案


这个解决方案对我有用:

task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
  directory "./build/nodes"
  node {
    name "O=PartyA,L=London,C=GB"
    p2pPort 10005
    rpcSettings {
      address("localhost:10006")
      adminAddress("localhost:10046")
    }
    extraConfig = [
        'rpcSettings.useSsl' : "true",
        'rpcSettings.ssl.keyStorePassword' : "xyz",
        'rpcSettings.ssl.keyStorePath' : "/myhome/certificates/rpcsslkeystore.jks"
    ]
    ...
}

推荐阅读