問題
あるサブドメイン形のWebホスティングサービスに lftp で接続しようとすると、ls コマンドを叩いただけで次のようなエラーが発生しました。
lftp ホスト名:~> ls
ls: Fatal error: Certificate verification: certificate common name doesn't match requested host name ‘(ホスト名)’ (IPアドレス)
解決方法
~/.lftprc
に次の内容を追加します。
set ssl:check-hostname no
エラーメッセージの意味は、「SSL証明書に記載されているホスト名と一致しない」ということです。
今回使ったホスティングサービスでは、SSL証明書がワイルドカード型になっておらず、ホスト名が example.com (例)の形になっていました。そのため、サブドメインの qiita.example.com (例)とはホスト名が違うというエラーが発生していました。
要は業者の設定が悪いのですが、ホスト名が一致していないこと以外は問題なかったので、とりあえずホスト名のチェックを外すことで回避できます。
誤った解決方法
エラーメッセージでGoogle検索しても、残念ながら日本語の情報では、誤った情報しか出てきませんでしたのでご注意ください。
誤った方法1
set ftp:ssl-allow off
SSL を使わないというのは論外です。
誤った方法2
set ssl:verify-certificate no
SSL を使っても証明書をチェックしないのでは全く意味がありません。