HAProxy에 SSL적용하기 with Linux Server

방승재·2023년 1월 17일
2
post-thumbnail

HAProxy에 SSL인증서를 적용했던 코드 정리입니다.

Virtualbox환경에서 openssl을 이용해서 직접 ssl인증서를 적용하는 예시입니다.

Linux서버에 이미 HAProxy가 설치되어있다고 가정하고 시작하겠습니다.

# 인증서를 담을 디렉터리 생성
mkdir /etc/haproxy/certs
cd /etc/haproxy/certs

# 키 생성
sudo openssl genrsa -out mydomain.key 2048
openssl x509 -req -days 365 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
sudo bash -c 'cat mydomain.key mydomain.crt >> ./mydomain.pem'

 




vi /etc/haproxy/haproxy.cfg로 HAProxy 설정

frontend  main 
    bind *:80
    bind *:443 ssl crt /etc/haproxy/certs/mydomain.pem
    reqadd X-Forward-Proto:\https

    redirect scheme https code 301 if !{ ssl_fc }

    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js

    default_backend             app

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server	app1 192.168.56.101:80 check
    server	app2 192.168.56.117:80 check

맨 밑에 server 옆에는 web을 띄어놓은 서버 두개를 두어 라운드로빈 방식으로 로드밸런싱 되게 하였습니다.
 
실제 공인기관에서 발급한 ssl인증서는 아니라서 적용해서 접속해보면 https에 빨간줄이 그어져있을 수 있습니다.




포트를 열고 HAProxy를 재시작하면 적용됩니다.

# 방화벽에 아래 포트를 열어줍니다.
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent

# 방화벽을 리로드합니다.
sudo firewall-cmd --reload

# HAProxy를 재시작합니다.
sudo systemctl restart haproxy

# HAProxy가 잘 동작하는지 확인해보기
sudo systemctl status haproxy

 

 

참고
https://www.sslcert.co.kr/guides/HAProxy-SSL-Certificates-Install
https://www.tecmint.com/configure-ssl-certificate-haproxy
http://fosshelp.blogspot.com/2016/11/how-to-create-pem-file-for-haproxy.html

profile
현재 대학교에 재학중입니다.

0개의 댓글