HAProxy는 SNI 조회를 수행하지 않습니다.

HAProxy는 SNI 조회를 수행하지 않습니다.

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

관련 정보