質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

1回答

13106閲覧

squid を ssl-bump で使うときの証明書を Let's Encrypt で作成することはできるでしょうか?

onsen.de.natto

総合スコア11

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

1クリップ

投稿2017/03/28 21:52

###前提・実現したいこと
http と https の両方をキャッシュするように squid で proxy を立てています。
https のキャッシュのために、中間CA証明書を独自CAで作っています。
このプロキシーは、 npm や composer の install などが、ときどき、異常に時間がかかることがあるので、
それを改善することが、主な目的としています。

独自CA ではなくて、Let's Encrypt で作成した証明書を使うことはできないでしょうか?

###発生している問題・エラーメッセージ

実際に、Let's Encrypt で作成した証明書を、squid.conf で、次のように設定してみましたが、
negotiating でエラーになります。

http_port 3129 ssl-bump
cert=/etc/letsencrypt/fullchain.pem
key=/etc/letsencrypt/privkey.pem
generate-host-certificates=on
dynamic_cert_mem_cache_size=4MB

####クライアント側

$ export https_proxy=http://proxy.hoge.com:3129 $ curl https://www.google.co.jp % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

####サーバー側(proxy.hoge.com)

2017/03/28 21:31:16| Error negotiating SSL connection on FD 14: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher (1/-1)

証明書をchain.pemに変更して再実行

squid.conf で、証明書を chain.pem に設定変更してみましたが、同じようにエラーになります。

http_port 3129 ssl-bump
cert=/etc/letsencrypt/chain.pem
key=/etc/letsencrypt/privkey.pem
generate-host-certificates=on
dynamic_cert_mem_cache_size=4MB

###補足情報

  • centos7
  • squid 3.5
  • 独自CAではうまく動いていた

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

generate-host-certificates=onという設定がありますが、これは「SquidでHTTPSをキャッシュさせるために、ホスト側のHTTPS証明書をでっち上げる」というオプションです。

もちろん、それをしなければ「HTTPSの結果をキャッシュする」ということは実現不可能なのですが、当然ながらまっとうな証明書が第三者に発行されることはないので、生成される証明書はどうしてもオレオレCAからの発行となります。

「SSL通信の途中に介入する」という、言い方を変えれば中間者攻撃のようなことをやっている以上、正当な証明書での通信とは両立不可能です。

投稿2017/03/28 23:24

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

onsen.de.natto

2017/04/01 04:45

はい、独自CAで証明書をつくるとそうなっちゃうので、Let's Encrypt で、まっとうな証明書を発行した場合に、squid にどう設定するのかしら?ということなんですが、いかがでしょう?
maisumakun

2017/04/01 05:29 編集

HTTPS通信がgithub.comやpackagist.orgと行われる以上、「これらのドメインに対する」証明書が必要となりますが、むろん第三者である(であろう)onsen.de.nattoさんにはこれらのドメインについての、自分の秘密鍵による正当な証明書は入手不可能です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問