自己署名証明書を使用したSquid Peek/Bump/Splice

自己署名証明書を使用したSquid Peek/Bump/Splice

TL:Ph.D.、Squid v5.7は、生成された証明書に発行者を含めません。

過去には、次の方法でHTTPSデータキャッシュを実行できました。

  1. イカを作る:
VERSION='4.11' ./configure --with-openssl --enable-ssl-crtd' ...
  1. 自己署名証明書を生成します。
sudo openssl req -new -newkey rsa:2048 -nodes \
-x509 -sha256 -extensions v3_ca -days 365 \
-keyout squid-ca-key.pem -out squid-ca-cert.pem \
-subj "/C=AU/ST=WA/L=Perth/O=ACME Pty Ltd/OU=Innovation/CN=squid.d2i.net.au/[email protected]"
  1. squid所有権をプロキシユーザー(redhat)またはproxy(ubuntu)に変更

  2. 設定squid.conf:

http_port 3128 \
  ssl-bump \
  generate-host-certificates=on \
  dynamic_cert_mem_cache_size=4MB \
  cert=/opt/squid-4.11/certs/squid-ca-cert-key.pem

sslcrtd_program /opt/squid-4.11/lib/security_file_certgen \
   -s /opt/squid-4.11/var/swap/ssl_db -M 16MB

acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
ssl_bump splice all

しかし、最近Squid v5.7の設定により、証明書を動的に生成して値を空白にしてもSquidを使用するのが困難になりましたIssuer:。出力に見られるようにopenssl s_client空の証明書発行者

ダウンロードしたファイルの完全な例は次のとおりです。

openssl s_client \
-proxy squid.d2i.net.au:3128 -servername github.com \
-connect https://github.com/neovim/neovim/releases/download/v0.4.4/nvim-linux64.tar.gz

ファイルをダウンロードしてみてください

Squidサービスがクライアントに有効な証明書を提供できないのはなぜですか?次のサービスがcurl次のエラーを返しました。

sudo curl --proxy squid.d2i.net.au:3128 https://github.com

カール:(60)SSL:X509発行者名を取得できません。詳細については、次を参照してください。https://curl.se/docs/sslcerts.html カールはサーバーの正当性を検証できないため、セキュア接続を確立できません。この状況と回避策の詳細については、上記のWebページをご覧ください。

答え1

これは予想より簡単でした。-subj証明書を生成するためのフラグを追加するのを忘れた場合、またはAnsibleで最初にこれを実行するときにcommon_name値が必要でした(成功的に生成されましたが)。

- name: Create certificate signing request (CSR) for new certificate
  community.crypto.openssl_csr_pipe:
    common_name: "{{ inventory_hostname }} personal computer"
    privatekey_path: "{{ key_dir }}/{{ inventory_hostname }}.key"
    basic_constraints:
      - 'CA:TRUE'
      - 'pathlen:0'
    basic_constraints_critical: yes
    subject_alt_name:
      - "DNS:{{ inventory_hostname }}.localdomain"
  run_once: true
  register: csr

関連情報