Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java通过FTPS传输文件时重置连接_Java_Ftps - Fatal编程技术网

使用java通过FTPS传输文件时重置连接

使用java通过FTPS传输文件时重置连接,java,ftps,Java,Ftps,我使用Java(Zehon)通过FTPS传输文件。这是我的代码片段 try { FTPsClient ftpClient = new FTPsClient(host, port,username ,password ,false,keyStorePath,keyStorePass); ftpClient.sendFile(absFilePath, ftpsFolder); }catch (FileTransferException e) {e.printStackTrace();} 我已远程登

我使用Java(Zehon)通过FTPS传输文件。这是我的代码片段

try {
FTPsClient ftpClient = new FTPsClient(host, port,username ,password ,false,keyStorePath,keyStorePass);
ftpClient.sendFile(absFilePath, ftpsFolder);
}catch (FileTransferException e) {e.printStackTrace();}
我已远程登录主机ip,正在连接。我确信我传递的凭据是正确的。我得到的异常是
com.zehon.exception.FileTransferException:java.net.SocketException:Connection reset

由于javadoc for FTPsClient没有显示任何其他连接到主机的方法,因此我在连接到主机时可能需要添加哪些内容的任何建议。

问题在于配置密钥库文件。这就是你实际需要做的: 下载OPENSSL并键入以下命令

openssl pkcs12 -export -in  /path/to/YourVeriSignSSLCert.crt -inkey /path/to/YourPrivateKey.key -out mycert.p12 -name tomcat -CAfile /path/to/YourIntermediateCertificate.cer -caname root
YourVeriSignSSLCert.crt是您当前的openssl证书

YourPrivateKey.key是您当前的私钥

YourIntermediateCertificate.cer是VeriSign Intermediate CA

导出的密钥库将位于“mycert.p12”中

现在密钥库文件是pkcs12格式,我正在将其转换为jks格式:

keytool -v -importkeystore -trustcacerts -srckeystore mycert.p12 -srcstoretype PKCS12 -destkeystore md_keystore.jks -deststoretype JKS

现在,这是需要传递给程序的密钥库文件。

希望dis能帮助其他面临同样问题的人:)PKCS12格式确实被Java识别。这就是
javax.net.ssl.keyStoreType
的用途。但是我如何在上面提到的程序中使用它呢?我需要传递一个字符串keystrepath。如何以编程方式更改密钥库类型?有关构造自定义SSLContexts的详细信息,请参阅。您必须构造一个
KeyManager
,从构建为PKCS12类型的
KeyStore
加载它,并用它初始化
SSLContext