Conexão de FTPS de curing de depuração, usando certificados de autenticação de cliente (OpenSSL)

1

(movido do StackOverflow) Fui solicitado a configurar uma conexão FTPS, usando um certificado de autenticação do cliente. Sou o cliente, conectando-me ao servidor. Estou em uma estação de trabalho do Windows 7, atrás de um firewall, embora essa conexão eventualmente seja usada em uma VM dedicada do CentOS. Algumas outras informações:

  • Apenas TLS 1.2
  • Somente modo passivo
  • Meu IP da WAN está na lista de permissões
  • Estou conectando a um URL de teste, por enquanto
  • Não há firewall de saída (apenas regras de entrada)
  • A chave deve ser enviada no formato PEM

Eu comprei o certificado da Comodo e gerou o certificado com o IE10. Eu exportei o certificado completo do IE, com chave privada e propriedades estendidas, no formato .pfx.

Eu escrevi um pequeno arquivo em lote para extrair as partes necessárias do .pfx, usando o OpenSSL:

::Extract the private key from the PFX
openssl pkcs12 -in comodo.pfx -nocerts -out encrypted.key
::Extract unencrypted private key
openssl rsa -in encrypted.key -out decrypted.key
::Extract the public cert in Base64 from the PFX
openssl pkcs12 -in comodo.pfx -clcerts -nokeys | openssl x509 -out comodo.cer
::Extract the chain bundle from the PFX
openssl pkcs12 -in comodo.pfx -nodes -nokeys -cacerts | openssl x509 -out comodo.crt

Usando as partes de chave extraídas, tenho tentado vários comandos de onda (v7.46.0) para se conectar ao servidor FTPS. A conexão continua falhando. Minha última tentativa está abaixo. O erro é quase sempre o mesmo.

curl -3 -k -v --ftp-ssl --tlsv1.2 --ftp-ssl-reqd --ftp-pasv --key decrypted.key --cacert comodo.crt --cert comodo.cer --user REMOVED:REMOVED ftp://ftps.REMOVED/

Um exemplo da saída é:

> curl -3 -v -k --user REMOVED:REMOVED --ftp-ssl --tlsv1.2 --ftp-ssl-reqd --ftp-skip-pasv-ip --cert comodo.cer --key priv.pem ftp://ftps.REMOVED/
*   Trying REMOVED_IP.
* Connected to ftps.REMOVED (REMOVED_IP) port 21 (#0)
< 220 Service ready for new user.
> AUTH SSL
< 234 Command AUTH okay; starting SSL connection.
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to ftps.REMOVED:21
* Closing connection 0 curl: (35) Unknown SSL protocol error in connection to ftps.REMOVED:21
>pause
Press any key to continue . . .

Estranhamente, se eu me conectar com o FileZilla, parece que consigo passar do handshake TLS, mas depois fico com erros diferentes quando tento fazer o upload de um arquivo. Como essa conexão será feita com o curl, concentrei-me nessa abordagem.

Eu tenho tentado isso por mais de uma semana. O administrador do servidor comprou um certificado do meu provedor e pode se conectar sem problemas. Estou perplexo com isso. Qualquer ajuda seria muito apreciada. Dicas de depuração gerais / ftps depuração também seria apreciado.

    
por geonaut 15.12.2016 / 11:17

1 resposta

0

Este acabou sendo um problema não-FTP. O sistema do cliente permitia apenas que um certificado de CA fosse associado a um usuário, de modo que alguns de nossos usuários fictícios estavam impedindo que a chave da AC fosse aceita. Obrigado pela ajuda de todos embora.

    
por 29.03.2017 / 17:50