lftp 인증서 확인 오류를 피하는 방법?


46

Pelican 블로그를 작동 시키려고합니다 . lftp를 사용하여 실제 블로그를 서버로 전송하지만 항상 오류가 발생합니다.

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

lftp가 SSL을 확인하고 있으며 Pelican의 빠른 설정은 FTP에 SSL이 없다는 것을 포함하는 것을 잊어 버렸습니다.


이것은 Pelican의 Makefile에있는 코드입니다 :

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

터미널에서 다음과 같이 렌더링됩니다.

    lftp ftp://username@blogname.com -e "mirror -R /Volumes/HD/Users/me/Test/output /myblog_directory ; quit"

내가 지금까지 관리 한 것은 Makefile을 다음과 같이 변경하여 SSL 검사를 거부하는 것입니다.

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

잘못된 구현으로 인해 올바르게 로그인 lftp username@myblog.com:~>했지만 ( ) 한 줄 기능이 더 이상 작동하지 않으므로 직접 미러 명령을 입력해야합니다.

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

오류 및 시간 초과없이 작동합니다. 문제는 하나의 라이너로 이것을하는 방법입니다.


또한 나는 시도했다 :

  • set ssl:verify-certificate/ftp.myblog.com no
  • lftp에서 인증서 확인을 비활성화하는 이 트릭 :

    $ cat ~ / .lftp / rc 세트 ssl : verify-certificate no

그러나 lftp 디렉토리에 "rc"폴더가없는 것 같습니다. 따라서이 프롬프트는 작동하지 않습니다.


1
~/.lftprc 파일입니다
Mausy5043

답변:


42

로부터 :

-c 명령
지정된 명령을 실행하고 종료합니다. 명령은 세미콜론 ( ;), AND ( &&) 또는 OR ( ||) 로 구분할 수 있습니다 . 쉘에서 명령 인수를 올바르게 인용하십시오. 이 옵션은 다른 인수없이 단독으로 사용해야합니다.

따라서 명령을 세미콜론으로 구분하여 단일 인수로 지정하려고합니다.

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

실제로 quit명령을 생략하고 -c대신 사용할 수 있습니다 -e.


훌륭합니다. 엄청 고마워. 나는 나보다 경험이 많은 사람이 나의 실패를 즉시 발견 할 수 있기를 바랐다.
패트릭

34

lftp에는 (Fedora RPM)에서 컴파일 된 SSL 지원이 있지만 비슷한 문제가 있습니다. ssl:verify-certificate false나를 위해 트릭을했다.


11
이를 바탕으로 set ssl:verify-certificate false~/.lftprc문제를 해결하여 문제를 해결했습니다.
Nicolas Raoul

5
… SSL을 사용하는 시점을 잃어 버렸지 만 lftp는 현재 제공되는 인증서를 기꺼이 받아 들여 M2M 공격에 취약합니다.
Spectras

1
인증서의 유효성이 올바르게 검사되지 않으면 lftp가 시스템의 CA 인증서를 찾지 못할 수 있습니다. 수정 사항 은 이 답변 을 참조하십시오 .
ingomueller.net

19

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

인증서를 확인하지 않으려는 경우 문제를 해결합니다.


2
그래도 SSL 인증서 확인을 사용할 수 없으며 중간자 공격이 가능합니다. 더 나은 수정 방법은 이 답변을 참조하십시오 .
ingomueller.net

3
set ssl:verify-certificate nolftp 쉘에서 실행 하여 항상 비활성화하는 것보다 현재 세션에서 임시를 비활성화하는 것이 좋습니다. 솔루션의 경우 여전히 +1입니다.
akostadinov

8

ssl:verfy-certificate false 나를 위해 작동하지 않았다, "데이터 연결을 만들 때"시간 초과 오류가 발생했습니다.

내 파일 에 추가 하여 이러한 지침을 따랐습니다 .set ftp:ssl-allow false~/.lftprc


3
명령을 실행할 때 철자를 정확히 입력 했습니까? ssl : verify-certificate false
Malcolm Murdoch

5

또한 나는 시도했다 :

  • ssl : verify-certificate / ftp.myblog.com을 설정하십시오.
  • lftp에서 인증서 확인을 비활성화하는 트릭 :

$ cat ~ / .lftp / rc 세트 ssl : verify-certificate no

set ftp:ssl-allow no;를 사용해보십시오 그것은 나를 위해 매력처럼 작동했습니다.


1
이것이 가장 적합한 선택입니다. 글로벌 설정은 가능한 경우 인증서 확인을 사용하는 것이 합리적이므로 글로벌 옵션은 잘못된 선택입니다. 글로벌 옵션을 설정하면 인증서 확인을 시도하지 않습니다. 스크립트 파일을 사용 lftp -f <script>하여이 명령을 open 명령 앞에 놓을 수 있습니다 .
kmcguire

set ssl:verify-certificate no거래가 안전하게 유지되기 때문에 더 좋습니다. set ftp:ssl-allow no일반 텍스트 통신합니다
michalzuber

4

또한 비슷한 종류의 SSL 인증서 확인 오류가 발생했습니다. 확인 인증서를 '아니요'로 설정하면 나에게 도움이되었습니다.

예:

lftp -c 'set ftps : 초기 -prot ""; ftp : ssl-force를 true로 설정하십시오. ftp : ssl-protect-data를 true로 설정하십시오. ssl : verify-certificate no를 설정하십시오. open -u Usename, 암호 208.82.204.46; uploadfilename을 넣습니다. '


3

매뉴얼 페이지를 읽고 해결책을 찾았습니다. 파일 작성

~/.lftp/rc

다음 줄을 추가하십시오.

set ssl:check-hostname false;

1

lftp 명령이 필요합니다 : set ftp:ssl-allow no;

다음을 선택한 직후 명령을 실행할 수 있습니다.

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

또는에 명령을 저장하십시오 ~/.lftprc.


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

나를 위해 문제를 해결

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.