PFSENSE HAProxy With ACME Certificates Auto Renewal Method FTP

PFSENSE 사용율이 높아지고 HAProxy 기능으로 웹사이트 및 서버 인프라 운영이 매우 편해진 요즘입니다. 최근에 많이 고민해본 Let’s Encrypt 인증서 자동갱신에 새로운 방법을 발견하고(원래 있던 기능인데 이기능을 시도해본 사용자가 없어서 포스팅을 남겨봅니다.)

구글에 검색하면 대부분 외부 클라우드 DNS서버 API키를 받아서 토큰이 자동으로 업데이트되고 받아오는 방법이 많이 공개가 되었습니다. 하지만 필자같은 경우는 외부 클라우드 DNS를 사용하지 않고 자체 DNS서버를 운영하고 있기에 아래 그림과 같이 DNS 수동 업데이트 방법으로 3개월마다 갱신하는 번거로움이 있었습니다.

도메인이 여러개이거나 호스트주소가 늘어날수록 피곤해지기 시작합니다. 뭐 DNS 방식의 장점은 와일드카드 주소를 사용할수 있다는 장점이 존재하긴 합니다만 필자는 90일마다 부지런히 수동갱신하는 인간형이 아닙니다. 제목처럼 게으른 타입이라…

그래서 방법중이 웹루트와 웹FTP 방식이 있어서 FTP 방식을 선택하여 테스트를 진행하였습니다.

일단 아래그림과 같이 FTP 사이트를 하나 만듭니다. 모든 도메인과 호스트데로 따로 만들필요 없습니다. 한곳에 집중시켜도 됩니다.

필자는 IIS-FTP를 사용했지만 리눅스 FTP든 다른 FTP든 그림처럼 /.well-known/acme-challenge/ 경로에 맞게 폴더를 만들어주고 해당경로에 접근가능한 계정에 권한을 부여합니다. 필자는 acme라는 계정을 별도로 사용하였습니다.

위와 같이 토큰파일이 올라갈 위치를 설정이 완료가 되었습니다. 여기서 ISSUE/RENEW 를 하기전에 웹사이트 설정을 완료해야됩니다.

위 그림처럼 http://host.domain.com/.well-known/acme-challenge/upload-file 액세스가 가능하게 가상디렉토리를 설정합니다. 테스트 텍스트파일을 생성해서 액세스가 되는지 확인이 완료되면 웹사이트 토큰 액세스 접근설정은 완료가 된겁니다. 주의할점은 토큰파일이 확장자가 없는 OrJhVz4gAcj8qAQkEuRJYJRCAfKtEdQ69yUFXkkUqNg 이런식이기 때문에 사이트설정 경로에 MIME 확장자 추가를 아래 그림과 같이 등록해줘야 액세스 오류가 없습니다. 아파치든 NGINX 든 비슷할거 같습니다.

ISSUE/RENEW 버튼 누르면 정상적으로 성공하고 인증서가 생성 및 갱신되는걸 확인할수 있습니다.

위와 같이 액션 옵션에 90일 이전에 갱신하고 HAProxy 서비스 재시작까지 배치가 /usr/local/etc/rc.d/haproxy.sh restart 등록되면 모든 사이트들이 자동으로 연장되는 인증서로 웹사이트에 등록이 가능하게됩니다.

앞단에 HAProxy나 NLB 같은 멀티서버를 운영해야 할경우 대부분 DNS 방법을 선택해야만 각각의 웹사이트에 제한이 없게 됩니다만 위와같은 FTP 폴더에 공유폴더로 가상디렉토리 사이트로 연결해주면 인증 및 갱신하는데 별문제가 없게됩니다.

이 테스트를 해보면서 알게된건 ACME 엔진이 외부에서 인증및 토큰파일을 넘겨주는게 아니라 PFSENSE 자체적으로 처리되는 거였습니다. FTP 사설 내부사이트로 연결하고 웹사이트 연결만 되게 해주면 되는거라 외부랑은 전혀 관련이 없었습니다.

그리고 시놀로지는 약간 경우가 다른데 이부분은 다음 포스팅에 올리겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다