
HAProxy v.1.5.18, 1.7.11, 와일드카드 SSL 인증서를 사용하여 단일 IP 주소에서 수신 대기하는 경우 SNI 조회를 사용하여 여러 백엔드를 지정해야 합니다. req_ssl_sni -i hostname.example.com
특정 백엔드로 리디렉션할 때 사용할 ACL이라고 하는 수많은 구성 파일이 있습니다 . 최선의 시도는 쿼리를 통해 req_ssl_sni -m found
프런트엔드에서 SNI에 액세스할 수 없다는 사실을 알아내는 것이었습니다. 단일 HTTPS 인증서로 SNI 조회를 수행하는 방법은 무엇입니까?
haproxy.cfg는 다음과 같습니다:
frontend https
bind *:443 ssl interface eth1 crt /etc/haproxy/allstar.company.com.pem
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
acl to_webcam req.ssl_sni -i webcam.company.com
acl to_jira req.ssl_sni -i jira.company.com
use_backend webcam if to_webcam
use_backend jira if to_jira
default_backend no_sni
backend webcam
acl webcam_auth (hidden)
http-request auth realm webcam if !webcam_auth
server ws01 10.x.x.x:8080
backend no_sni
acl webcam_auth2 (hidden)
http-request auth realm webcam-no-sni if !webcam_auth2
server ws01 10.x.x.x:8080
backend drop403
http-request deny
backend jira
server jira-test 10.x.x.y:8080
전역 및 기본값은 변경되지 않습니다. 이 구성을 사용하면 내가 타격하는 유일한 백엔드는 HTTP 인증을 요청하는 no-sni입니다. 뭐야?!
답변1
누군가가 넘어질 경우를 대비해서 말이죠.이 장소문자 그대로 "SNI를 활성화하기 위해 해야 할 일은 HAProxy에 여러 SSL 인증서를 제공하는 것뿐입니다."라고 말했습니다. 따라서 프런트엔드에서 SNI 헤더를 활성화하려면 다음과 같은 여러 PEM 파일이 필요합니다.다른인증서. 여기에는 와일드카드 인증서가 포함된 단일 PEM 파일이 있으므로 SNI는 haproxy에서 비활성화됩니다. 따라서 필터링 및 ACL 리디렉션은 hdr(host)
마치 백엔드가 일반 HTTP인 것처럼 ACL을 통해 수행되어야 합니다.
acl to_webcam hdr(host) -i webcam.company.com
acl to_jira hdr(host) -i jira.company.com
use_backend webcam if to_webcam
use_backend jira if to_jira