TL: Ph.D., Squid v5.7은 생성된 인증서에 발급자를 포함하지 않습니다.
과거에는 다음을 통해 HTTPS 데이터 캐싱을 수행할 수 있었습니다.
- 오징어 만들기:
VERSION='4.11' ./configure --with-openssl --enable-ssl-crtd' ...
- 자체 서명된 인증서를 생성합니다.
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]"
squid
소유권을 프록시 사용자 (redhat) 또는proxy
(ubuntu) 로 변경설정
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 컬은 서버의 적법성을 확인할 수 없으므로 보안 연결을 설정할 수 없습니다. 이 상황과 해결 방법에 대해 자세히 알아보려면 위의 웹페이지를 방문하세요.
답변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