PS: The certificate chain that I can follow manually using OpenSSL is
different than that shown by my browser (Firefox > Page Info). I don't
know why that is. It goes as follow:

AddTrust External CA Root
  COMODO RSA AddTrust CA
    COMODO RSA Organization Validation Secure Server CA
      *.seedbox.fr

instead of:

COMODO RSA Certification Authority
  COMODO RSA Organization Validation Secure Server CA
    *.seedbox.fr

But in any case, I have certificates for both roots in my
/etc/ssl/certs/ca-certificates.crt bundle file, so I don't understand
why verification fails.

Thanks in advance for your help
Naël

On Sun, Mar 12, 2017 at 4:33 PM, Nathanaël Naeri
<nathanael.na...@gmail.com> wrote:
> Thanks for your answer. I have checked that Comodo's root CA
> certificate is present in the certificate bundle file, however
> Comodo's intermediate CA certificate (that signed the server's
> certificate) isn't, as is normal if I understand correctly.
>
> The certificate hierarchy is as follow (as shown by Firefox > Page
> Info when connecting to https://www.seedbox.fr):
>
> COMODO RSA Certification Authority
>   COMODO RSA Organization Validation Secure Server CA
>     *.seedbox.fr
>
> Certificate validation fails as described whether I point to the root
> CA certificate bundle file or to the relevant root certificate only:
>
>   set ssl:ca-file /etc/ssl/certs/ca-certificates.crt
>   set ssl:ca-file /etc/ssl/certs/COMODO_RSA_Certification_Authority.pem
>   set ssl:ca-file
> /path/to/manually/downloaded/COMODORSACertificationAuthority.crt
>
> It succeeds if I point to the intermediate CA certificate, but I
> shouldn't have to do that, should I?
>
>   set ssl:ca-file
> /path/to/manually/downloaded/COMODORSAOrganizationValidationSecureServerCA.crt
>
> I checked using lftp 4.6.3a (Ubuntu 16.04) and 4.7.7 (latest stable) BTW.
>
> On Sun, Mar 12, 2017 at 8:29 AM, Alexander Lukyanov <lavv...@gmail.com> wrote:
>> Your understanding of CA is correct. The Comodo certificate should be
>> present in the CA bundle for the verification to succeed.
>>
>>
>> вс, 12 марта 2017, 5:16 Nathanaël Naeri <nathanael.na...@gmail.com>:
>>>
>>> I'm trying to connect to a FTP server that supports explicit FTPS
>>> using TLS, but I can't get certificate verification working. Most of
>>> the online help I find advises disabling certificate verification with
>>> "ssl:verify-certificate no", and I assume this is not good advice.
>>>
>>> My current understanding of the process is that lftp downloads the
>>> server's certificate when it negotiates TLS, then follows the
>>> certificate chain up to the certificate of a root CA, and trusts that
>>> root CA because it is in my list of trusted third parties, that I
>>> indicate to lftp using "ssl:ca-file
>>> /etc/ssl/certs/ca-certificates.crt" (the root CA certificates bundle
>>> file). This is, as far as I know, what web browsers do when they
>>> connect to HTTPS hosts (isn't it?).
>>>
>>> This doesn't appear to work so I guess I don't understand right. The
>>> debug output is:
>>>
>>> $ lftp -d -p 21 -u USER,PASS SERVER.seedbox.fr
>>> lftp u...@server.seedbox.fr:~> set ssl:ca-file
>>> /etc/ssl/certs/ca-certificates.crt
>>> lftp u...@server.seedbox.fr:~> ls
>>> ---- Connecting to SERVER.seedbox.fr (IPADDRESS) port 21
>>> <--- 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
>>> <--- [other 220 info]
>>> ---> FEAT
>>> <--- [feat reply]
>>> ---> AUTH TLS
>>> <--- 234 AUTH TLS OK.
>>> ---> OPTS UTF8 ON
>>> Certificate:
>>> C=FR,postalCode=77310,ST=Seine-et-Marne,L=PRINGY,street=IMPASSE
>>> DU BREAU,O=SDBX FRANCE,OU=0002 529997199,CN=*.seedbox.fr
>>>  Issued by: C=GB,ST=Greater Manchester,L=Salford,O=COMODO CA
>>> Limited,CN=COMODO RSA Organization Validation Secure Server CA
>>> ERROR: Certificate verification: Not trusted
>>> **** Certificate verification: Not trusted
>>> ---- Closing control socket
>>> ls: Fatal error: Certificate verification: Not trusted
>>>
>>> However, if I download the server's certificate beforehand, using a
>>> web browser or the OpenSSL CLI (openssl s_client -connect
>>> SERVER.seedbox.fr:21 -starttls ftp), and then points lftp to this
>>> certificate using "ssl ca-file
>>> /path/to/manually/downloaded/server/certificate.crt", the certificate
>>> verification succeeds. Why? What is verified in this case, precisely?
>>> That the certificate lftp downloads from the server during TLS
>>> negotiation is the same as one that was previously downloaded? How
>>> does that authenticates the server?
>>>
>>> And does this mean that the user has to maintain a certificate
>>> database of the servers they connect to? I thought the point of
>>> certificate hierarchies was that the user would only have to maintain
>>> a short list of trusted third party certificates (the root CA
>>> certificates).
>>>
>>> Thanks in advance for your help
>>> Naël
_______________________________________________
lftp mailing list
lftp@uniyar.ac.ru
http://univ.uniyar.ac.ru/mailman/listinfo/lftp

Reply via email to