【发布时间】:2018-11-11 12:11:37
【问题描述】:
通过 FTPS 连接到站点时,我需要禁用证书检查。似乎连接正在寻找一个有效的证书,而给定的证书已经过期。通过WINSCP,我们可以接受证书,尽管已经过期,但是java不会让我连接。
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredExcept
ion: NotAfter: Fri Mar 31 00:00:00 SGT 2017
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source
)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at org.apache.commons.net.ftp.FTPSClient.sslNegotiation(FTPSClient.java:
289)
at org.apache.commons.net.ftp.FTPSClient._connectAction_(FTPSClient.java
:220)
at org.apache.commons.net.SocketClient._connect(SocketClient.java:244)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:202)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:306)
at ftpsdownload.Main.downloadFiles(Main.java:68)
at ftpsdownload.Main.main(Main.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.security.cert.CertificateExpiredException: NotAfter: Fri Mar 31
00:00:00 SGT 2017
at sun.security.x509.CertificateValidity.valid(Unknown Source)
at sun.security.x509.X509CertImpl.checkValidity(Unknown Source)
at sun.security.x509.X509CertImpl.checkValidity(Unknown Source)
at org.apache.commons.net.util.TrustManagerUtils$TrustManager.checkServe
rTrusted(TrustManagerUtils.java:61)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(Unkno
wn Source)
... 20 more
服务器管理员说他们不使用 SSL,所以我认为他们不知道也不关心这一点,所以我决定将其从验证中删除。
【问题讨论】:
-
如果他们不使用 SSL,为什么不使用 FTP 而不是 FTPS?
-
我最好的选择是可以禁用 FTP xD
-
在这方面不太确定,他们是客户,并且对这些类型的知识有限,我不能真的建议他们只使用 ftp