Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indy SChannel fails with CERT_E_CN_NO_MATCH error when doing FTP List and Get #8

Open
sjm-github opened this issue Nov 25, 2020 · 0 comments

Comments

@sjm-github
Copy link

sjm-github commented Nov 25, 2020

Hi

I have come across and issue when using your Indy SChannel component with the Indy IdFTP component and the following properties are set

UseTLS := utUseRequireTLS
DataPortProtection := ftpdpsPrivate;

Whilst the initial logon passes certificate validation when issuing a List or Get command it then fails with

SChannel initialization fails CertVerifyCertificateChainPolicy.Status = 800B010F

The call stack is as follows

Execute.IdSSLSChannel.TIdSSLIOHandlerSocketSChannel.Clone
IdFTP.TIdFTP.InitDataChannel
IdFTP.TIdFTP.InternalGet('NLST .',$31BB180,False)
IdFTP.TIdFTP.List($31FC8E0,'.',False)

followed by

Execute.IdSSLSChannel.TIdSSLIOHandlerSocketSChannel.GetTargetHost
Execute.IdSSLSChannel.TIdSSLIOHandlerSocketSChannel.ConnectSSL
Execute.IdSSLSChannel.TIdSSLIOHandlerSocketSChannel.SetPassThrough(False)

In GetTargetHost, the Host property is now an ip address, not the original host name and therefore a CERT_E_CN_NO_MATCH error occurs when it revalidates the certificate.

When DataPortProtection is ftpdpsClear it works ok.

Stephen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant