Java 代码操作带SSL的FTP服务器

Java 代码操作带SSL的FTP服务器,第1张

参考

client = new FTPSClient(implictSSL)

KeyManagerFactory kmf = KeyManagerFactory.getInstance("X509")

kmf.init(KeyStore.getInstance("BKS"), "wshr.ut".toCharArray())

client.setTrustManager(new X509TrustManager() {

public X509Certificate[] getAcceptedIssuers() { return null}

public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { }

public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { }

})

client.setKeyManager(kmf.getKeyManagers()[0])

client.setNeedClientAuth(false)

client.setUseClientMode(false)

在大多数情况下,这是个错误的配置,在这里的密钥库并没有containt的正确证书,证书链是不完整的,或者客户端没有提供有效的凭证。因此,在最后一个项目中,我决定记录发生的事件,并分析导致在SSL握手期间的特定错误的原因。

在这篇文章中,我会告诉你特定的SSL错误发生的原因,并且如何通过分析握手信息进行检测,以及如何解决这些问题。为此,我使用以下情形:

服务器使用由CA颁发的证书,并要求客户端进行身份验证。服务器使用一个简单的信任列,可以信任的将CA列出。

客户端连接使用这个单一的可信任的由CA颁发的证书,并有它自己的trustore还包含从服务器发来的证书。

这不是一个非常复杂的环境,而是你经常可以看到的。请注意以下信息,当你不使用客户端的证书或使用自签名的证书时,也可以找出问题。在这些事例中,确定问题的方式基本上是相同的。

Tomcat支持SSL,并且用它确保机密数据的传输,如身份证号码和信用卡信息等。利用KeyTool程序生成一个public/private键对,同时选择一家可信任的授权机构,来创建和签发数字证书。

一旦收到证书,并将它导入到keystore后,下一步就是在服务器上安装证书了。如果使用的是Tomcat,复制放在服务器某个位置下的keystore,并对Tomcat进行配置即可。随后,打开conf/server.xml文件,并在<service>下添加以下Connector元素。

<Connector port="443"

    minSpareThreads="5"

    maxSpareThreads="75"

    enableLookups="true"

    disableUploadTimeout="true"

    acceptCount="100"

    maxThreads="200"

    

    cheme="https"

    secure="true"

    SSLEnabled="true"

    keystoreFile="/path/to/keystore"

    keyAlias="example.com"

    keystorePass="01secret02%%%"

    clientAuth="false"

    sslPortocol="TLS"

/>

以上从cheme开始到最后的代码与SSL有关。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/295345.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-25
下一篇2023-04-25

发表评论

登录后才能评论

评论列表(0条)

    保存