使用java通过FTPS传输文件时重置连接
我使用Java(Zehon)通过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();} 我已远程登
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
。