中堅プログラマーの備忘録

忘れっぽくなってきたので備忘録として・・・

【CentOS8】SSPI への呼び出しに失敗しました・・・エラーへの対応について

1.エラー内容

C#.netでFTPSクライアントアプリケーションをデバッグ中に下記のエラーが発生しました。

SSPI への呼び出しに失敗しました。内部例外を参照してください。
これはFTPサーバーへ接続する段階で発生しました。


SSPIとは何か?

Security Support Provider Interface (SSPI) は、Microsoft Windowsにおいてセキュリティに関する様々な機能を提供するAPIである。
この文面を読むと、どうも暗号化の部分がおかしいようです。
アプリケーションは【TLS1.0】の暗号化通信を行うように設定していたのですが
この部分について調べてみることにしました。

2.エラー発生環境

サーバー

OS:CentOS8
FTPサーバー:vsftpd
暗号化プロトコル設定:TLS1.0

クライアント

OS:windows
FTPクラス:FluentFTP
暗号化プロトコル設定:TLS1.0


暗号化プロトコルの設定については【TLS1.0】共通にしているので
何故エラーが発生するのか不明でした。

3.解決方法

とりあえずよくわからないので
クライアント側の暗号化プロトコルを【TLS1.2】に変更してみました。
その結果、問題なく通信が出来てしまいました。
※【TLS1.1】にしてもエラーが発生。

サーバー側の設定にミスがあったのかと思い【vsftpd.conf】を確認してみると

ssl_tlsv1=YES

となっており設定にミスもありませんでした。

4.原因はCentOS8の仕様にあった

【CentOS8】は【TLS1.0】、【TLS1.1】がデフォルトで無効となっているようです。
【TLS1.3】への移行が進んでいる中で【TLS1.0】、【TLS1.1】は使うのはやめようということでしょうか?


とりあえず後で見るとややこしくなるので
【vsftpd.conf】の中身を

ssl_tlsv1.2=YES

に書き換えて本件は終了としました。