lftpのSSL通信エラー解消方法

投稿者: | 2016年7月6日

lftpを使用してFTPS(SSL)接続し、コマンドを実行すると次のようなエラーが発生しました。

ls: Fatal error: Certificate verification: Not trusted

エラーの内容はSSL証明書が不正であるというものです。
これはlftpクライアント固有の問題で、FTPサーバに正しい証明書が配置されていても発生します。
このエラーの解消方法は2つありますのでそれを今回紹介します。
・SSL証明書の正当性確認を無効にする
・クライアント側で証明書の情報を取得する
まずは1つ目のSSL証明書の正当性確認を無効にする方法です。
lftpでは設定でSSL証明書の正当性確認を無効にすることができます。
lftpの設定はホームディレクトリの直下に「.lftprc」というファイル名で配置することができます。

$ vi .lftprc

下記のようにファイルを作成します。
一番下の行の「ssl:verify-certificate」を「no」に設定するとSSL証明書の正当性を確認しません。

set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no

2つはクライアント側で証明書の情報を取得する方法です。
localhostで以下を実行します。

$ openssl s_client -showcerts -connect xxxxx.jp:21 -starttls ftp

インフォメーションが標準出力されます。
“—–BEGIN CERTIFICATE—–” から” —–END CERTIFICATE—–“までの鍵の部分をコピーし、ファイルとして保存します。
ここではmycert.crtとし、ホームディレクトリに配置します。
/home/vagrant/.lftprcに鍵ファイルパスを記載する。
中身は次のように記述します。

$ cat /home/vagrant/.lftprc
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate yes
set ssl:ca-file "mycert.crt" <--追記

これでエラーが解消されます。

$ lftp -u ftpsecure xxxxx.jp
Password:
lftp ftpsecure@xxxxx.jp:~> ls
drwx------    2 0        0           16384 Jun 24 15:07 lost+found
lftp ftpsecure@xxxxx.jp:~>

lftpのSSL通信エラー解消方法」への1件のフィードバック

  1. 江口 浩

    同じエラーが表示されていたので,検索してこのページにたどり着きました.
    そして,1つ目の方法で無事解決できました.
    どうもありがとうございました.m(_ _)m
    ちなみに,私は;
    https://linux-suomi.net/modules/poco/index.php?content_id=11
    を参考にしてlftpをミラーリングアップロードに使用しております.
    スクリプトの冒頭に,
    こちらに記載されている.lftprcの内容を記載致しました.

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です