• 締切済み

delegateでSSLのクライアント認証を代理する方法

SSLでクライアント認証を要求してくるWebサーバに、クライアント認証をサポートしていないクライアントから接続したいと思い、 client --(http)--> delegated --(https)--> WebServer という接続を考えています。 そこで、delegatedを以下のオプションで起動しているのですが、サーバから証明書を受信した直後からの挙動がおかしく、全くデータを取得しないままdelegatedとの接続がタイムアウトで終了してしまいます。 ./src/delegated -vv -cert client-cert.pem -key client-key.pem -pass passflaise -P8000 SERVER=http FSV=sslway ■delegatedのデバッグメッセージ(抜粋) 07/01 17:51:21.58 [26938] 1+2: -- Fork(FSV): 26936 -> 26938 07/01 17:51:21.58 [26938] 1+2: #### execFilter[FSV] [/path/to/delegate/lib/sslway]sslway 07/01 17:51:21.58 [26938] 1+2: #### [/home/komatsu/delegate/lib/sslway](1) sslway 07/01 17:51:21.58 [26938] 1+2: FSV arg[0] sslway ## SSLway[26938](localhost) server's cert. = **subject<< ..(省略).. >> 07/01 17:51:22.16 [26936] 1+2: PollIn.POLLHUP (11) errno=0 07/01 17:51:22.16 [26936] 1+2: HTTP realy_response: EOF at start 07/01 17:51:22.16 [26936] 1+2: relay_response()=-10001, cache=0, httpStat=P DontTruncate=0 07/01 17:51:22.16 [26936] 1+2: #HT11 EOF from the server 07/01 17:51:22.16 [26936] 1+2: #HT11 close svsokcs[17,18] クライアント認証を必要としないSSLサーバからは正常にデータを取得できます。 解決法をご存知の方、よろしくご教授ください。

みんなの回答

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

私はsquid派なので、delegateは大昔に触ったきりでまったく自信なしですが、 delegatedのオプションにREMITTABLE(中継したいプロトコル)を指定してみては? REMITTABLEの指定がなければ、HTTP以外のスペシャリストでは、パラメタSERVER で指定したプロトコルだけが中継可能なはず? delegated ##### 'REMITTABLE=http,https/{443,563}' まとはずれな回答だッたらすまん。

retr
質問者

お礼

現状では、やはりクライアント認証できないようです。 通常のSSLサイトは問題なく表示されていますし、delegateのログを見ると、サーバの証明書を受信するところまでは問題なく行っていますので、「Certificate Request」か「Server Hello done」の直後にエラーになるようです。

retr
質問者

補足

早速の回答ありがとうございます。 MOUNTでのURLの書き換え、いくつかのオプションはsslwayに直接指定するなど、いくつか勘違いがあったようで、ご指摘の点もその一つでした。 現在、以下のようにしていますが、相手先のサーバがダウン中で確認できません。 また、明日にでも結果の方を書き込ませていただきます。ありがとうございました。 ./src/delegated \ -vv \ -P8000 \ SERVER=http \ REMITTABLE=https \ MOUNT='http://* https://*' \ FSV='sslway -cert client.cert.pem -key client.key.pem -pass pass:passflaise -CAfile /path/to/ca.cert.pem -CApath /path/to'

関連するQ&A