web-dev-qa-db-ja.com

IIS 10-のFTPサイトの証明書を更新しています-FTPクライアントはプライマリ接続で新しく更新された証明書を認識しません

IIS 10のFTPサーバーを使用するWebサイトを実行していますが、TLSを介した明示的なFTPを使用するように設定しており、昨年はうまく機能しました。Digicertを通じてサーバー証明書を購入しました。

サーバー証明書の有効期限は2019-01-04です。 2021年まで有効なDigicertで証明書を更新しました。それをWindowsサーバーにインストールし、新しい証明書を使用するようにFTPサイトを更新しました。

ただし、FileZillaクライアントで接続しようとすると、ログに次のように記録されます。

Status: Connecting to xxx.xxx.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...

しかしup upは、証明書が2019-01-04に期限切れになったことを警告します。

enter image description here

[OK]をクリックすると続行しますが、次のように表示されます。プライマリ接続とデータ接続の証明書が一致しません。 「TLSを初期化しています...」に続くログです

Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I.
Command:    PASV
Response:   227 Entering Passive Mode (38,101,199,155,19,46).
Command:    LIST
Response:   150 Opening BINARY mode data connection.
Error:  Primary connection and data connection certificates don't match.
Error:  Transfer connection interrupted: ECONNABORTED - Connection aborted
Response:   226 Transfer complete.
Error:  Failed to retrieve directory listing
Status: Disconnected from server: ECONNABORTED - Connection aborted

それは、TLSロジックの初期化が何らかの形でOLD証明書を取得しているようですが、接続すると、新しい証明書を取得し、それらが一致しないことがわかります。

IIS FTPサーバーが古い証明書を使用するように更新して接続を再試行すると、TLSの初期化時に同じ期限切れの証明書の警告が表示されますが、Ok =接続され、問題なくファイルを転送できます(ただし、転送ごとに証明書の有効期限が切れていることを確認する必要があります)。

何が起きてる? FileZillaクライアントは初期化TLS証明書をキャッシュしていますか? IIS新しい構成を取得するためにFTP構成で行う必要がある他の設定またはアクションはありますか? "(証明書を更新した後、Webサーバーを再起動しようとしましたが、まだサイコロはありません、同じ問題。)

EDIT 2019-01-13:期限切れの証明書をWindows証明書ストアから削除しましたが、FTP経由で接続しようとすると失敗しますAUTH TLSコマンド:

Status: Connecting to ...
Status: Connection established, waiting for welcome message...
Response:   220 Microsoft FTP Service
Command:    AUTH TLS
Response:   431 Failed to setup secure session.
Command:    AUTH SSL
Response:   431 Failed to setup secure session.
Error:  Could not connect to server

これは、サーバー側の問題であることを示しています。つまり、サーバーは期限切れの証明書を見つけようとしますが、見つけることができません。 IIS FTPがまだ古い証明書を使用しようとしている理由について、私は途方に暮れています。

%WinDir%\System32\Inetsrv\Config\applicationHost.config、FTPサーバーセクションに次の設定が表示されます。

<ftpServer>
    <security>
        <ssl serverCertHash="E10..." serverCertStoreName="My" ssl128="false" controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
        <authentication>
            <basicAuthentication enabled="true" />
        </authentication>
    </security>
</ftpServer>

報告されたserverCertHashcurrent証明書(期限切れのものではない)の拇印であるため、方法/場所/理由IIS FTPは、AUTH TLSに期限切れのものを使用しています。

EDIT 2019-02-13:

残念ながら、私はこれを機能させることができませんでした。最後に、FileZillaサーバーをインストールし、FileZillaサーバーで使用する自己署名証明書を作成しました。

ありがとう

2
Scott Mitchell

私はこれに途方に暮れていて、修正に出くわしました(今はうまくいきます)。

  1. IIS Manager in IIS Managerのルートノードを選択します
  2. 右側のペインでFTP SSL設定を選択します
  3. 新しい証明書を選択してルートノードに適用します

現在、複数のFTPホストで動作しています。以前に各ホストノードに証明書を適用したばかりでした...

2
Steve T