οκ!我想在java中 Build 一个客户端服务器通信oves SSL / TLS . 服务器是多线程的 . 使用openssl,我充当了我自己的CA(为权限创建了私钥和自签名证书) . 现在我想为我创建的CA签名的服务器和客户端创建密钥和证书 .

1)我是否必须从每个客户端的提示中创建证书和密钥?或者它是另一种“自动化”方式,例如使用脚本?

2)我已经看到这个代码用于设置密钥库

private void setupClientKeyStore() throws GeneralSecurityException, IOException 
    {
    clientKeyStore = KeyStore.getInstance( "JKS" );
    clientKeyStore.load( new FileInputStream( "client1publickey.jks" ),
                       "password".toCharArray() );
    }

    private void setupServerKeystore() throws GeneralSecurityException, IOException
    {
    InputStream keyStoreResource = new FileInputStream("serverprivatekey.jks");
    char[] keyStorePassphrase = "password".toCharArray();
    serverKeyStore = KeyStore.getInstance("JKS");
    serverKeyStore.load(keyStoreResource, keyStorePassphrase);
}

我运行该命令以查看这些条目的类型,client1publickey是TrustedCert条目,而serverprivatekey是PrivateKey条目 . 这段代码在我的服务器类上 . 我在我的客户端类上有这个代码

private void setupServerKeystore() throws GeneralSecurityException, IOException {
    serverKeyStore = KeyStore.getInstance( "JKS" );
    serverKeyStore.load( new FileInputStream("serverpublickwy.jks"), 
                        "university".toCharArray() );
  } 
   private void setupClientKeyStore() throws GeneralSecurityException, IOException {
    clientKeyStore = KeyStore.getInstance( "JKS" );
    clientKeyStore.load( new FileInputStream( "client1privatekey.jks" ),
                       "university".toCharArray() );}

问题是如何单独创建这些jks文件? publickey.jks文件是cert,对吗?如何从私钥中将其存储在另一个文件中并从CA签名?或者是我可以在客户端/服务器之间 Build 连接的另一种方式?首先,我使用openssl创建了CA,然后服务器和客户端的两个jks文件包含了证书和密钥 . 对不起英文 .