- - PR -
SSLリバースプロキシ(squid)の中間証明書の設定についての質問
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-02 17:53
初めましてズーと申します。
この会議室で掲示された下記サイトを参考にさせて頂き http://squid.robata.org/ReverseProxy_top.html http://squid.robata.org/ReverseProxy_ssl.html SSLリバースプロキシを構築しました。 自作サーバー発行証明書でのSSLでの通信は上手く行きました。 次に公式な認証局からのCAにて運用しようとしましたが、 その際中間CA証明書のインストールが必要と判明しました。 squid.confにはcert=とkey=の指定先しかなくそれらしき設定記述が他にみあたらず、 いろいろと検索したのですが情報を得ることができませんでした。 squidでの中間証明書の設定(インストール)はどこにすればよいのでしょうか? Squidの設定やヒントだけでもご指示いただけると幸いです。 小生、LinuxでのSSL作業は初めてでもあり、まだ間もないため的外れな 質問をしているかもしれませんが、何とぞよろしくお願いいたします。 [ メッセージ編集済み 編集者: ズー 編集日時 2007-02-02 17:54 ] | ||||||||||||
|
投稿日時: 2007-02-03 15:17
結論から言えば中間証明書はIEに設定します。SSLサーバの証明書を 確認するのは、あくまでSSLクライアント側です。 つーことで、Linuxとは関係なかったりします。 http://bb.watch.impress.co.jp/cda/bbword/8158.html の通り、サーバから公開鍵証明書を送りますが その公開鍵証明書しか設定できません。だからsquidの設定には証明書と 秘密鍵しか設定しようがありません。 信頼するルート証明期間->中間認証局->SSLサーバ証明書 の関係になってるから中間認証局はどうするのだろうと思ったのでしょうけど。 SSLサーバの証明書をチェックするのは、SSLクライアント、つまりブラウザ(IE) です。 | ||||||||||||
|
投稿日時: 2007-02-03 15:35
そいつはダウトです。 中間証明書は、SSLサーバ側で持っておくものです。 例えば、ベリサイングローバルIDは、中間証明書が必要ですが、このように説明されています。 Q&A 中間認証局の証明書はなぜ必要なのでしょうかより
Apache2以降であれば、mod_sslのSSLCertificateChainFileディレクティブで設定を行いますが、squidの資料では、同等の設定項目が見当たりません。 なので、squid では設定のしようがないのか…と思っていますが、私は squid には詳しくないため明言はできません。 最悪 Apache にするか、中間認証局証明書の要らない証明書を使うか…も考えては如何でしょう。 [ メッセージ編集済み 編集者: angel 編集日時 2007-02-03 15:39 ] | ||||||||||||
|
投稿日時: 2007-02-03 16:23
補足です。
まず、選択肢として、Apache 以外に Pound もありましたね…、というのもありますが、 squid での中間証明書について、このような情報がありました。 squid-users-MLのChain SSL Cert filesより、
ということで、squid2.5 用にはパッチがあるそうです。 この情報は2005年5月のものなので、今はメインストリームにも取り入れられているのか…と思いきや、バージョン3のマニュアルでも、それらしき項目が見つからないですね…。英語なので読みきれていないのかもしれませんが。 以上、ご参考まで。 ※追記:Squid SSL "accelerator" supportのページによれば、既にSSLパッチで証明書チェインの機能はサポートし、squid 3 では標準になっているように見えますね…。でも、肝心の設定方法が読み取れない…。 …ん。“just add the CA cert to your domain cert file after the domain cert”というのは、サイト用証明書と中間証明書を連結したファイルを作って cert= で指定しろ、ということでしょうかね? [ メッセージ編集済み 編集者: angel 編集日時 2007-02-03 16:58 ] | ||||||||||||
|
投稿日時: 2007-02-03 19:27
こちらに一票。 TLSの仕様(RFC4346)でこう定義されています。
そうだと思います。squidについてはわかりませんが、OpenSSLでは証明書はPEMフォー マット(テキストファイル)なので、普通は個々の証明書を単純にアペンドしていくだけ で証明書チェーンファイルが出来上がるはずです。Linuxだと普通catコマンドとアペン ド用のリダイレクト(>>)を使うことが多いです。上のRFCの記述通り、サブジェクトの 証明書、中間証明書、ルート証明書(省略可)の順で並べておけばOKのはずです。 ただOpenSSLのAPIで、たしかファイルから最初の1個の証明書を読むやつと、証明書 チェーン全体を読むやつがあるので、squidがどっちをコールしているかで結果が異なり そうな気がします。たぶんチェーン全体を読むほうをコールしてくれていると思いま すが、squidの実装がどっちかによるでしょうね(できそうな気はします)。squidにつ いて調べる余裕はないので、これで失礼します。 | ||||||||||||
|
投稿日時: 2007-02-03 19:45
加納さん、angelさん返答ありがとうございます。
頂いた情報をもとに、検証してみたいと思います。 結果はまたこの会議室で報告させて頂きます。 ありがとうございました。 | ||||||||||||
|
投稿日時: 2007-02-03 19:48
blunderさん返答ありがとうございます。
小生が返答した後にblunderさんの書き込みに気づきました。 | ||||||||||||
|
投稿日時: 2007-02-05 13:01
squidは2.6使用です。
ダメもとで、catコマンドでサーバー証明書−中間CA証明書の順で結合し、 cert= で指定しましたが上手くいきませんでした。 2.6へは証明書チェインの機能はサポートされていないみたいです。 squid3.0へバージョンアップするか、Apache2へ乗り換えるか検討したいと思います。 squid3.0でのSSLリバースプロキシをされている方いましたら、 設定方法またはヒントだけでもご指示いただけると幸いです。 よろしくお願いいたします。 |
1