ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

システムエンジニアの部屋コミュの【困ってます】FTP-OpenSSL

  • mixiチェック
  • このエントリーをはてなブックマークに追加
業界2年目で、社内SE(会社で私一人しかいない…)をしています。
この度、会社のWin2003serverでFTPサーバをあげ、SSL化してFTPSで顧客とファイルのやりとりをすることになりました。

そこで自宅のXP上でテストをしていたところ、普通にFTPでファイルのやりとりはできるのですが、FTPSとなるとどうしてもコケてしまうのです。

◎FFFTP側の設定
・FireWallの設定・・・タイプ=USER ユーザ名@ホスト名
          ホスト名=localhost
・ホストの設定・・・拡張タブの「FireWall」と「パッシブモード」にチェック       

◎FileZilla側の設定
・「SSL/TLSサポートを有効にする」にチェックをし、プライベートキーファイルと証明書ファイルも参考URLの通りに設定
・ユーザ設定で「ユーザログイン時にSSLを必須にする」にチェック
・パッシブモードのポート範囲も適当なものを指定

◎現象
・FFFTPの拡張タブで「FireWallを使う」にチェックを入れると、「パスワードが正しくない」というエラーが発生。
・FileZillaのインタフェースから証明書を発行して、手動でインストールしようとすると「このファイルは"セキュリティ証明書"として使用することはできません」を言われ、インストールできない。

◎環境
FTPサーバ   ・・・FileZilla0.9.23beta
FTPクライアント・・・FFFTP(WinSSLWrapにてSSL対応済み)
SSL      ・・・Win32OpenSSL-0_9_8e
Windowsファイアウォールは無効に設定
ウィルス対策ソフト(avast!)を停止

◎参考URL
http://mizushima.ne.jp/Windows/SSL/SSL-menu.php
http://document.secure.ne.jp/ftp/ftp_over_ssl/ftp_over_ssl05.php

正直なところ、証明機関や証明書のしくみは、まだよく理解できていません。
FTPSと証明書の関連の書籍も見つけられないし、WEB上で解決策を探すのも行き詰ってしまい、困っています。

どうかアドバイスをお願いします。。

コメント(15)

001での回答と同様ですがたしかFFFTPはFTPSに対応してません。対応しているクライアントソフトは数少なかったかと思います。
SmartFTPはftp over SSLに対応しているようです。
(使ったことはありませんが)

http://www.smartftp.com/

マイナーな改変が頻繁にあり、日本語化するのが追いついていないようなので、日本語で使う場合は少し古いバージョンを使う必要があります。慣れれば英語メニューでも十分ですが。
> ◎現象
> ・FileZillaのインタフェースから証明書を発行して、手動でインストールしようとすると「このファイルは"セキュリティ証明書"として使用することはできません」を言われ、インストールできない。

「FileZillaのインタフェースから証明書を発行して」
というのはどのような作業なのかは分からないですが、
参考URLに書いてあるように、以下の手順で証明書を作成できないですかね?

===================================================
■自宅認証局(CA)を開局しよう
 http://mizushima.ne.jp/Windows/SSL/OpenSSL/PrivateCA.php
 C:\usr\ssl\binの中にprivateというフォルダを用意しておいてください。
 C:\usr\ssl\bin\openssl.exeをダブルクリックしてください。
 OpenSSL> req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 3650
   ※ここで、ドメイン名は自分が使いたいドメイン名を入力

 ----- 以下のファイルが作成される -----
  CA証明書 C:\usr\ssl\bin\cacert.pem
  CA秘密鍵 C:\usr\ssl\bin\private\cakey.pem


■サーバーの秘密鍵と署名要求書(CSR)を作成しよう
 http://mizushima.ne.jp/Windows/SSL/OpenSSL/csr-key.php
 あらかじめC:\usr\ssl\bin\serverといったフォルダを用意しておきます。
 (C:\usr\ssl\bin\openssl.exeをダブルクリック??)
 OpenSSL> req -new -nodes -out server/newreq.pem

 ----- 以下のファイルが作成される -----
  サーバーの署名要求書(CSR) C:\usr\ssl\bin\server\newreq.pem
  サーバーの秘密鍵 C:\usr\ssl\bin\privkey.pem

 サーバーの秘密鍵(privkey.pem)がserverディレクトリに入っていないので、C:\usr\ssl\bin\serverに入れておきます。


■署名要求書(CSR)にCAで署名・認証して証明書を発行しよう
 http://mizushima.ne.jp/Windows/SSL/OpenSSL/CA-signature.php
 C:\usr\ssl\bin内に、index.txtというファイル(中身は空のまま)を作成してください。
 C:\usr\ssl\bin内に、serialというファイルも作成します。(拡張子がないことに注意)
  ※こちらには中身に01とだけ書き込んでください。
 C:\usr\ssl\bin内に、newcertsというフォルダを作成しておきます。
 C:\usr\ssl\bin\opensslを編集します。(ワードパットなどのテキストエディタで編集)
  ※編集すべき項目は以下。(修正したら上書き保存する)
   [ CA_default ]
   dir = ./demoCA
   ↓
   dir = C:/usr/ssl/bin

 OpenSSLの作業を再開します。
 (C:\usr\ssl\bin\openssl.exeをダブルクリック??)
 OpenSSL> ca -policy policy_anything -out server/cert.pem -infiles server/newreq.pem

 ----- 以下のファイルが作成される -----
  サーバーの証明書 C:\usr\ssl\bin\server\cert.pem

===================================================

おれやさん、タコスさん>
参考URLの2つ目が「FFFTPでFTP over SSLしよう」というページを参考にしてFFFTPをSSL対応にしました。
FFFTPをSSL化=FTPS対応と思っていたのですが、違うのでしょうか??

NOBさん>
ありがとうございます。SmartFTPを使ってのテストもやってみます。

しまあじさん>
すみません。証明書自体を少し勘違いしていたようです。
証明書=拡張子が"crt"だと思っていたのですが、OpenSSLだと"pem"なんですね。
FileZillaで拡張子"crt"の証明書を作成できたので、これを使うものだと思ってました…。

そこで、しまあじさんに紹介して頂いた通りに証明書は発行したのですが、拡張子"pem"の証明書の扱い方がよくわかりません。。
拡張子"crt"なら、ダブルクリックでインストールできるのに、"pem"はできませんよね?

間違っているかもしれませんが、『WEBサーバなら、クライアントがサーバに証明書要求を出したときに、クライアントが証明書をインストールできる・・・』みたいなことを本で読んだ気がするのですが、それはFTPでも同じなのでしょうか?

そもそも、暗号化通信を可能にするには、クライアントが証明書をインストールしなくてはならない…と理解しているのですが、その理解が間違っているのでしょうか…。

FTPSの道は険しいですね…。
しまあじさん>
> OpenSSL> req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 3650
   ※ここで、ドメイン名は自分が使いたいドメイン名を入力

自分のXPの環境では、ドメインを取得しておりません。(本番環境でも同じです)
なので、証明局を作成するときはドメインは適当に「自分の名前.co.jp」にしました。
もしかして、根本的にこれが間違っているのでしょうか!?
おれやさん、タコスさん>

すみません。文章が変でした。

参考URLの2つ目が「FFFTPでFTP over SSLしよう」というページなのですが、このページを参考にしてFFFTPをSSL対応にしました。
FFFTPをSSL化=FTPS対応と思っていたのですが、違うのでしょうか??
SmartFTPクライアントとFileZillaクライアントでテストしてみたところ、SSLでファイル転送できました。
ありがとうございました。

FileZillaクライアントで接続に行くと、「この証明書を許可しますか?」という画面が出てきました。
やはりFTPもクライアントが要求を出した時点で証明書をインストールするのですね。

ただ、存在しないユーザ名を使ってサーバに接続に行っても、「この証明書を許可しますか?」と出てきます。
これって何か変じゃないですか…?
もちろんユーザ名が違うからログインはできないんですけど、証明書は第三者に勝手に取られてしまうわけですよね??こんなものなんでしょうか…。

SmartFTPクライアントに関しては、「この証明書を許可しますか?」という画面は出てこずそのままログインできました。

でもとりあえず明日は張り切って出社できそうです。
みなさんありがとうございました。

しかし、FFFTPのSSL対応とは一体何だったのか…。謎です。
> しかし、FFFTPのSSL対応とは一体何だったのか…。謎です。

FFFTPのSSL対応だと、相変わらず失敗するのですか?

そうです。
接続はできる(FileZillaで設定したWELCOMEメッセージは表示される)のですが、ログインだけできないのです。

今WinSSLWrapの設定が変なのかと思って色々試していたのですが、WinSSLWrapの設定について述べているWEBページが見つけられず…。

今私のFFFTPのバージョンは1.82aなのですが、まさかバージョン!?と思って、検証済みFFFTPクライアントで次は試してみます。

*WinSSLWrapの検証済み動作環境*
Windows XP SP2 Home Edition + FFFTP Ver1.92a
Windows XP SP2 Proffesional Edition + FFFTP Ver1.92a
Windows 98 Second Edition + FFFTP Ver1.92
Windows 2000 5.00.2195 SP4 + FFFTP Ver1.92

…これで上手く行ったら、色々お騒がせしておきながら本当に申し訳ないです…冷や汗
おれやさん>
ありがとうございます。
暗号化技術についての本を昨日購入したので、勉強します!
自宅XPでは、FFFTPのバージョン上げても結局ダメでした。

でも、今日会社の2003serverにFileZilla入れて、XPからFFFTPで試したらいけました…。全く同じ設定にしてたんですけど…。
FFFTPのバージョンは、1.93を使いました。(昨日、最新バージョンが出たみたいですね)

もしかして、自宅では全部ローカルでやってたからダメだったのか・・・??納得がいきませんが。。

とりあえず、解決(?)しました。
みなさん、ありがとうございました!!
いっちゃんです。
証明書はわざわざ自宅認証局(CA)つくらなくても、IISのデフォルトのCA使えばいいと思うんですけど。

あと、こまさんの経緯をみていて思ったのですが、証明書を改めて見直されてみてはいかがですか?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

システムエンジニアの部屋 更新情報

システムエンジニアの部屋のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング