我使用apache.commons.net-framework在

java中实现了FTPS客户端(FTP over SSL / TLS).

它被配置为在默认端口21上执行显式安全性.

ftpsClient = new FTPSClient(false);

ftpsClient.setTrustManager(getConfiguration().getCertificatesManager());

ftpsClient.connect(getConfiguration().getHostName(), getConfiguration().getPort());

只要我不在服务器上强制执行客户端身份验证,一切正常.

但我需要启用客户端身份验证,因此我在服务器上强制执行它并配置客户端系统属性:

-Djavax.net.ssl.keyStore="D:/.../ftps-client-auth.keystore"

-Djavax.net.ssl.keyStorePassword="*****"

-Djavax.net.ssl.keyStoreType=JKS

我得到的就像我没有设置系统属性一样:

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1806)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:986)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1170)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1197)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1181)

at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:265)

at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java:207)

at org.apache.commons.net.SocketClient.connect(SocketClient.java:172)

at org.apache.commons.net.SocketClient.connect(SocketClient.java:192)

服务器日志说:

DEBUG: Client "", "SSL_accept failed: error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate"

似乎没错 – 我启用了-Djavax.net.debug = all,这表明服务器发送了它接受的CN列表,但是客户端发送了一个空的证书链.

>我做错了什么?

>我是否需要以编程方式进行一些配置?

>证书或私钥是否需要支持SSL / TLS的特殊功能?

JAVA ftps设置_如何使用apache.commons.net.ftps配置客户端身份验证?相关推荐

  1. idea看java版本设置_详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)...

    详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用) 有时候需要看Java源码,但是 Java 1.7 和 Java 1.8的差别的关系,有时候你想查看不同jd ...

  2. 使用Apache Commons Configuration读取配置信息

    2019独角兽企业重金招聘Python工程师标准>>> 在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架--Apache ...

  3. java ntlm解密_java – HttpClient 4.1.1在使用NTLM进行身份验证时返回401,浏览器工作正常...

    我正在尝试使用Apache / Jakarta HttpClient 4.1.1使用给定的凭据连接到任意网页.为了测试这一点,我在运行的dev机器上安装了最少的IIS 7.5,其中一次只有一种身份验证 ...

  4. Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)

    基本概念 Apache Commons FileUpload :Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以将对多部分文件上传功能的支持添加到Servlet和 ...

  5. java安全级别设置_怎么调整java安全级别

    要在 Internet Explorer 中配置 Java 安全性,请执行以下操作: 启动 Internet Explorer,然后单击工具菜单上的 Internet 选项. 在 Internet 选 ...

  6. mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法

    Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.下面向大家介绍Mac电脑上如何配置Java ...

  7. aws 短信验证_在AWS Kubernetes上进行抛光的rshiny身份验证

    aws 短信验证 If you're looking for a hassle free way to add authentication to your RShiny Apps you shoul ...

  8. 交叉验证选择最佳参数_如何为您的公司选择最佳的身份验证即服务提供商

    交叉验证选择最佳参数 by Jeff Okawa 通过Jeff Okawa 如何为您的公司选择最佳的身份验证即服务提供商 (How to choose the best Authentication ...

  9. azure云数据库_在Azure SQL数据库中配置多重身份验证

    azure云数据库 介绍 (Introduction) The new SSMS 17.2 allows users to authenticate using Active Directory wi ...

  10. mac java偏好设置_在 Mac中配置Java开发环境

    最近买了一台mac pro,晚上在家写java,在配置环境的时候碰到很多问题,现在总结出来,提供给大家. 1.配置Tomcat 1.下载: 从apache官网(http://tomcat.apache ...

最新文章

  1. matlab Retinex图像增强算法
  2. 黄海广博士的知乎高赞(1000+)文章分享
  3. python没有库_Python开发者必备6个基本库,这个都没有怎么做开发呢
  4. 玩转Jquery中的动画效果(animate方法)
  5. ios(safar/微信)返回不执行js
  6. linux命令-eq是什么意思,linux查看系统信息命令
  7. easyui datagrid加载数据的三种方式
  8. java 怎么用毫秒_java1.8中如何使用精确到毫秒的时间
  9. catia怎么将特征参数化_CATIA参数化建模及关系式的创建和使用 | 坐倚北风
  10. Nginx 屏蔽ip地址的方法
  11. js 时间任意格式化 ,又来造轮子了
  12. ffmpeg检测文件是否损坏_[音视频] 下载M3U8加密视频文件
  13. 向日葵深度linux,完美使用向日葵远程软件
  14. 2021互联网大厂中秋礼盒大盘点
  15. 计算机应用程序通过文件打不开,应用程序打不开|exe文件关联修复器|打开方式还原 - 所有应用程序文件打不开的解决方法 - 安全专题...
  16. Python字符串格式化
  17. Matlab实现 LU分解法解线性方程组(全选主元列选主元)
  18. Sieve of Eratosthenes(埃拉托色尼筛选法)——C++实现
  19. Hadoop2.x HA
  20. 魅蓝note6的android怎么升级,魅蓝note6怎么把应用安装到sd卡

热门文章

  1. linux mint 图标主题_Ubuntu/Linux Mint 用上仿 Win7/Win8 主题
  2. Docker安装以及docker run hello-world 不能下载镜像报错
  3. 【博主推荐】html好看的年会抽奖(附源码)
  4. 差分管电路图_电子管差分放大电路改造方案
  5. 电赛提升----风力摆控制系统
  6. hprose php用户手册,Laravel Hprose RPC 服务
  7. 如何证明服从卡方分布_卡方分布
  8. 对称加密算法和非对称加密算法
  9. USB 鼠标接线顺序
  10. java生成简单流水号