¿Cómo evitar el error de verificación del certificado lftp?

46

Estoy intentando que mi blog Pelican funcione. Utiliza lftp para transferir el blog real a los servidores, pero siempre recibo un error:

mirror: Fatal error: Certificate verification: subjectAltName does not match ‘blogname.com’

Creo que lftp está comprobando el SSL y la configuración rápida de Pelican simplemente olvidó incluir que no tengo SSL en mi FTP.


Este es el código en el Makefile de Pelican:

ftp_upload: $(OUTPUTDIR)/index.html
lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

que se muestra en la terminal como:

    lftp ftp://[email protected] -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

Lo que logré hasta ahora es negar el control SSL cambiando el Makefile a:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no" "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

Debido a mi implementación incorrecta, inicié sesión correctamente ( lftp [email protected]:~>) pero la función de una línea ya no funciona y tengo que ingresar el comando espejo a mano:

mirror -R /Volumes/HD/Users/me/Test/output/ /myblog_directory

Esto funciona sin un error y tiempo de espera. La pregunta es cómo hacer esto con un trazador de líneas.


Además probé:

  • set ssl:verify-certificate/ftp.myblog.com no
  • Este truco para deshabilitar la verificación de certificados en lftp:

    $ cat ~ / .lftp / rc set ssl: verificar-certificado no

Sin embargo, parece que no hay una carpeta "rc" en mi directorio lftp, por lo que este mensaje no tiene ninguna posibilidad de funcionar.

Patricio
fuente
1
~/.lftprc es un archivo
Mausy5043

Respuestas:

42

Desde la página del manual :

-c comandos
Ejecuta los comandos dados y sale. Los comandos se pueden separar con un punto y coma ( ;), AND ( &&) u OR ( ||). Recuerde citar correctamente el argumento de los comandos en el shell. Esta opción debe usarse sola sin otros argumentos.

Por lo tanto, desea especificar los comandos como un argumento único, separados por punto y coma:

lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "set ftp:ssl-allow no; mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"

En realidad, puede omitir el quitcomando y usarlo en -clugar de -e.

mgorven
fuente
Eso es genial. Gracias una tonelada. Tenía la esperanza de que alguien con más experiencia que yo descubriera mi falla al instante (- También probé su sugerencia -c omitiendo el abandono, pero esto no funcionó para mí. Estoy feliz de todos modos).
patrick
34

Tuve un problema similar, aunque mi lftp tiene soporte ssl compilado en (Fedora RPM). ssl:verify-certificate falsehizo el truco para mí

Dr. Kenneth Noisewater
fuente
11
En base a esto, poner set ssl:verify-certificate falseen mi ~/.lftprcresolvió el problema para mí.
Nicolas Raoul
55
... aunque eso derrota el punto de usar SSL, su lftp ahora acepta felizmente cualquier certificado que se presente, haciéndolo vulnerable a los ataques M2M.
espectras
1
Si los certificados no se validan correctamente, una causa probable es que lftp no encuentra los certificados de CA de su sistema. Vea esta respuesta para una solución.
ingomueller.net
19

echo "set ssl:verify-certificate no" >> ~/.lftp/rc

resolverá el problema si no desea que se verifique el certificado

Philippe Gachoud
fuente
2
Esto todavía deshabilita la verificación de los certificados SSL y hace posible los ataques de intermediarios. Para una mejor solución, vea esta respuesta .
ingomueller.net
3
mejor simplemente ejecute set ssl:verify-certificate noen el shell lftp para deshabilitar temporalmente la sesión actual que deshabilitar siempre. Todavía +1 para la solución.
akostadinov
8

ssl:verfy-certificate false no funcionó para mí, recibí un error de tiempo de espera al "hacer la conexión de datos".

Seguí estas instrucciones agregando set ftp:ssl-allow falsea mi ~/.lftprcarchivo.

desmillicious
fuente
3
¿Lo deletreó bien cuando ejecutó el comando? SSL: verificar-certificado falso
Malcolm Murdoch
5

Además probé:

  • establecer ssl: verificar-certificado / ftp.myblog.com no
  • Este truco para deshabilitar la verificación de certificados en lftp:

$ cat ~ / .lftp / rc set ssl: verificar-certificado no

Intenta usar set ftp:ssl-allow no; Funcionó como un encanto para mí.

Lucas Farias
fuente
1
Esta es la opción más adecuada. La configuración global es una mala elección, ya que es razonable utilizar la verificación del certificado cuando sea posible y al configurar la opción global, nunca intentará verificar el certificado. Puede usar un archivo de script lftp -f <script>y colocar este comando antes del comando de apertura.
kmcguire
set ssl:verify-certificate noCreo que es mejor porque la transacción sigue siendo segura. set ftp:ssl-allow nose comunicará en texto sin formato
michalzuber
4

También me enfrentaba a un tipo similar de error de verificación de certificado SSL. Establecer el certificado de verificación en 'no' funcionó para mí.

Ejemplo:

lftp -c 'set ftps: initial-prot ""; establecer ftp: ssl-force verdadero; establecer ftp: ssl-protect-data verdadero; establecer ssl: verificar-certificado no; abrir -u Usename, Contraseña 208.82.204.46; poner uploadfilename; '

Pritam
fuente
3

He leído páginas de manual y he encontrado una solución. Crea un archivo

~/.lftp/rc

y agregue la siguiente línea:

set ssl:check-hostname false;
andrey - k
fuente
1

Necesita el comando lftp: set ftp:ssl-allow no;

Puede ejecutar el comando justo después de seleccionar:

lftp www.yourdomain.com -u username,password -e "set ftp:ssl-allow no;"

o guardar el comando en ~/.lftprc.

Nick Tsai
fuente
0
lftp -u username,password host -e "set ftp:ssl-allow no" 

solucionó el problema para mí

ri825170
fuente