動的SSL証明書発行 (Dynamic SSL Certificate Generation) が有効なSquidを作る
まともに動く環境にするまでかなりはまってしまったので、誰かの役に立つようにメモ。
CentOS 6.5 で動作確認。参考にした元ネタ: http://sysmagazine.com/posts/168515/
Squidで使用するOpensslの準備
インストール
wget http://www.openssl.org/source/openssl-1.0.0k.tar.gz tar -zxf openssl-1.0.0k.tar.gz cd openssl-1.0.0k ./config shared --prefix=/opt/squid/openssl --openssldir=/opt/squid/openssl make make install ln -s /opt/squid/openssl/lib/libssl.so.1.0.0 /usr/lib64/libssl.so.1.0.0 ln -s /opt/squid/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.1.0.0
オレオレ証明書の発行
cd /opt/squid/etc/ openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout squidCA.pem -out squidCA.pem chmod 400 squidCA.pem openssl x509 -in squidCA.pem -outform DER -out squid.der
Squid
インストール
wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.6.tar.gz tar -zxf squid-3.4.6.tar.gz cd squid-3.4.6 ./configure --prefix=/opt/squid --enable-ssl --enable-ssl-crtd --with-openssl=/opt/squid/openssl --enable-icap-client make all make install
証明書発行のキャッシュディレクトリを用意
mkdir /opt/squid/var/lib /opt/squid/libexec/ssl_crtd -c -s /opt/squid/var/lib/ssl_db chown -R nobody /opt/squid/var/lib/ssl_db
squid.conf の編集
下記の記述を追加。
####Dynamic Certificate Generation#### http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/opt/squid/etc/squidCA.pem always_direct allow all ssl_bump client-first all sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER
Squidの起動準備
ログの所有者の変更と、(必要に応じて)スワップディレクトリの準備を行う。
chown -R nobody /opt/squid/var/logs /opt/squid/sbin/squid -z
Squidの起動
/opt/squid/sbin/squid