웹 - SSL과 LetsEncrypt

이번에는 Nginx Proxy Manager를 통해 보안 문제를 해결할 차례에요. 이를 위해서는 먼저 서버에 SSL 인증서 라는 것을 발급 받아야 해요.

과거에는 SSL 인증서를 발급 받으려면 비용도 많이 들었고 설정 방법도 꽤나 복잡했어요. 그러다 LetsEncrypt 라는 비영리 인증 기관이 생겼는데, 이 기관 덕분에 이제는 누구나 SSL 인증서를 발급받고 쉽게 적용할 수 있게 됐어요. 정말 멋진 곳이죠?

그런데 이 기관을 통해 발급받은 인증서는 유효기간이 90일로 매우 짧다는 단점이 있어요. 그래서 유효기간이 만료되기 전에 매번 갱신 작업을 수행해줘야 하는데요.

하지만 다행히도 Nginx Proxy Manager는 이 LetsEncrypt 를 통한 인증서 발급과 갱신을 모두 자동화하여 간편히 사용할 수 있도록 제공하고 있어요.


인증서 발급받기

먼저 Nginx Proxy Manager 의 관리 페이지에서 SSL Certificates 탭에 들어가 주세요.

이곳에서는 발급받은 SSL 인증서를 관리할 수 있어요.

이번엔 오른쪽 상단의 Add SSL Certificate 를 클릭하고 LetsEncrypt 를 선택해 주세요.

이후 나온 팝업 화면에서는 인증서를 발급받고 싶은 도메인 주소를 입력하고, Test Server Reachability를 선택해 주세요.

도메인이 인터넷에서 접근 가능한 상태인지를 확인하는 작업이에요.

이와 같이 나온다면 인증서를 발급받을 수 있는 정상적인 상태에요.

이제 약관에 동의하고 Save 버튼을 눌러 주세요.

이후 로딩 화면이 나오며 시간이 꽤 걸릴 수 있어요.

인증서가 목록에 출력되면 발급이 정상적으로 완료된 거예요.


인증서 할당하기

이제 서비스에 SSL 인증서를 할당할 차례에요.

Hosts - Proxy Hosts에서 생성한 서비스의 Edit 버튼을 클릭해 주세요.

이제 SSL 탭으로 이동하면 생성했던 인증서를 선택할 수 있어요.

도메인과 일치하는 인증서를 선택하고 Force SSL 옵션을 켜 주세요. 이는 브라우저가 암호화 연결을 시도하지 않더라도 강제로 암호화 연결을 사용하게 만드는 옵션이에요.

이후 Save 버튼을 눌러 저장해 주세요.


검증하기

여러분의 서비스에 다시 접속해 보세요.

이제 더 이상 브라우저의 경고가 나오지 않게 됐어요. 연결 정보를 보더라도 '안전함’이라 나올 거예요.
축하드려요 :partying_face: 이제 인터넷의 다른 웹사이트와 동일한 수준의 기술력을 갖추게 되신 거예요.

Nginx Proxy Manager 는 인증서의 만료 기한이 다가오면 자동으로 갱신을 수행해요. 그래서 특별한 일이 없다면 앞으로도 잘 동작할 거예요.

여러 서비스가 있다면 같은 방법으로 추가로 인증서를 발급 받아 적용해 보세요.