温馨提示:本文翻译自stackoverflow.com,查看原文请点击:corda - Failed to find a store at certificates\sslkeystore.jks
corda

corda - 无法在certificate \ sslkeystore.jks中找到商店

发布于 2020-05-04 19:07:30

Linux上的Corda开源。启用节点RPC SSL。我收到错误“无法在certificate \ sslkeystore.jks找到商店”。有任何想法吗?我已经在keyStorePath中输入了绝对路径。

查看更多

提问者
Ashish Sinha
被浏览
11
Adel Rustum 2020-02-16 07:30

您必须遵循本段的步骤:https : //docs.corda.net/clientrpc.html#wire-security,我在下面为您详细介绍。

启用RPC SSL时,必须运行一次此命令(系统将要求您提供2个新密码):

java -jar corda.jar generate-rpc-ssl-settings

它将创建rpcsslkeystore.jksunder certificates文件夹和rpcssltruststore.jksunder certificates/export文件夹。
在您的node.conf供应中,输入以下路径和密码rpcsslkeystore.jks

rpcSettings {
    useSsl=true
    ssl {
       keyStorePath=${baseDirectory}/certificates/rpcsslkeystore.jks
       keyStorePassword=password
    }
    standAloneBroker = false
    address = "0.0.0.0:10003"
    adminAddress = "0.0.0.0:10004"
}

现在,如果您有网络服务器,则NodeRPCConnection必须在内部使用带有ClientRpcSslOptions参数的构造函数:

// RPC SSL properties.
@Value("${config.rpc.ssl.truststorepath}")
private String trustStorePath;
@Value("${config.rpc.ssl.truststorepassword}")
private String trustStorePassword;

@PostConstruct
public void initialiseNodeRPCConnection() {
    NetworkHostAndPort rpcAddress = new NetworkHostAndPort(host, rpcPort);
    ClientRpcSslOptions clientRpcSslOptions = new ClientRpcSslOptions(Paths.get(trustStorePath),
            trustStorePassword, "JKS");
    CordaRPCClient rpcClient = new CordaRPCClient(rpcAddress, clientRpcSslOptions, null);
    rpcConnection = rpcClient.start(username, password);
    proxy = rpcConnection.getProxy();
}

为此,我们在上面添加了两个额外的属性,您现在必须在启动Web服务器时提供这些属性;修改您的clients模块build.gradle

task runNodeServer(type: JavaExec, dependsOn: jar) {
    classpath = sourceSets.main.runtimeClasspath
    main = 'com.example.server.ServerKt'
    args '--server.port=50005', '--config.rpc.host=localhost', 
    '--config.rpc.port=10005', '--config.rpc.username=user1', '--config.rpc.password=test',
    '--config.rpc.ssl.truststorepath=/path-to-project/build/nodes/your-node/certificates/export/rpcssltruststore.jks', 
    '--config.rpc.ssl.truststorepassword=password'
}

如果您打算使用独立的Shell连接到该节点,则必须执行类似的操作,但对我而言不起作用。我报告了以下错误:https : //github.com/corda/corda/issues/5955