
얼마 전 인증서 만료로 접속 경고가 뜬 사이트를 봤습니다. 서버는 멀쩡했고 트래픽도 평소와 같았습니다. 갱신 작업은 성공했는데 웹서버가 새 인증서를 읽지 않아, 방문자에게는 이미 만료된 인증서가 계속 보인 경우였습니다. SSL보안인증서는 발급보다 설치 확인과 갱신 운영이 더 중요합니다.
먼저 인증서가 필요한 범위를 적습니다
SSL이라는 이름이 익숙하지만, 현재 웹 연결을 보호하는 기술은 TLS입니다. 인증서는 접속한 서버의 이름을 확인하고 암호화 연결을 맺는 데 쓰입니다. 서버 침입을 막거나 백업을 대신하지는 않습니다. 그래서 처음에는 상품 가격보다 실제로 접속할 이름이 몇 개인지 확인하는 편이 낫습니다.
대표 사이트 하나만 운영한다면 그 이름을 포함하는 인증서면 됩니다. 관리 화면이나 별도 서비스에 다른 이름을 쓴다면 각각 인증서에 포함되어야 합니다. 와일드카드 인증서는 여러 하위 이름을 다룰 때 편하지만, 발급에 DNS 검증이 필요하고 개인키 하나가 적용되는 범위도 넓어집니다. 이름이 두세 개라면 일반 인증서를 각각 자동 발급하는 쪽이 운영하기 쉬울 때가 많습니다.
호스팅 관리 화면에서 무료 인증서와 자동 갱신을 제공한다면 소규모 블로그나 일반 쇼핑몰은 대개 그걸로 충분합니다. 유료 인증서를 사도 서버 처리 용량이 늘거나 암호화가 저절로 강해지지는 않습니다. 조직 확인 서류, 특정 계약 조건, 별도 지원이 필요한 경우에 유료 상품을 검토하면 됩니다.
발급 전에 도메인과 서버 경로를 확인합니다
인증기관은 신청자가 해당 이름을 관리하는지 확인합니다. 렛츠인크립트의 일반적인 웹 검증 방식은 외부에서 80번 포트의 검증 파일에 접근해야 합니다. 방화벽이 막았거나 프록시가 다른 서버로 보내면 발급이 실패합니다. 서버가 두 대 이상이면 어느 서버로 요청이 들어와도 검증 파일을 내보낼 수 있어야 합니다.
DNS 검증은 지정된 TXT 기록으로 소유권을 확인합니다. 와일드카드 인증서나 외부에서 80번 포트에 접근할 수 없는 환경에 맞습니다. 다만 갱신까지 자동화하려면 DNS 업체의 API 지원 여부와 접근 권한을 봐야 합니다. API 자격 증명을 서버에 저장한다면 그 계정이 바꿀 수 있는 DNS 범위를 최소화하는 것이 좋습니다.
- 접속에 쓰는 이름이 모두 인증서 신청 목록에 들어 있는지 확인합니다.
- 도메인이 현재 서버나 프록시를 가리키는지, 이전 서버 기록이 남지 않았는지 확인합니다.
- 80번 포트 검증을 쓸 경우 외부 접근과 검증 파일 경로를 확인합니다.
- DNS 검증을 쓸 경우 TXT 기록 반영 시간과 자동 갱신 수단을 확인합니다.
여기서 흔한 실수는 대표 이름만 발급하고 실제 방문자가 쓰는 다른 이름을 빠뜨리는 것입니다. 인증서 설치가 정상이어도 빠진 이름으로 접속하면 브라우저 경고가 납니다.
설치 후에는 방문자가 받는 인증서를 봅니다
설정 파일에 새 인증서 경로가 적혀 있다는 사실만으로 작업이 끝나지 않습니다. 웹서버 설정 검사를 거쳐 다시 읽게 한 다음, 외부에서 접속해 실제 제공되는 인증서의 이름과 만료일을 확인해야 합니다. 로드밸런서나 CDN에서 암호화 연결을 끝낸다면 인증서를 설치할 위치도 원본 서버와 다릅니다. 어느 장비가 방문자에게 인증서를 보여주는지부터 파악해야 합니다.
인증서 체인이 빠지면 일부 기기에서만 접속 오류가 날 수 있습니다. 또 페이지 자체는 안전하게 열려도 이미지나 스크립트를 암호화되지 않은 경로에서 불러오면 혼합 콘텐츠 문제가 생깁니다. 이때는 인증서를 다시 사기보다 페이지가 불러오는 파일의 경로를 고쳐야 합니다. 이전 작업 중에는 기존 주소의 이동 규칙까지 확인해야 반복 이동이나 일부 페이지만 열리지 않는 일을 줄일 수 있습니다.
HSTS는 브라우저가 이후 접속에도 암호화 연결을 사용하도록 기억시키는 설정입니다. 효과는 있지만 인증서 오류가 나면 방문자가 경고 화면을 건너뛰기 어려워집니다. 하위 도메인까지 적용하기 전에는 그곳의 인증서와 갱신 상태도 함께 확인하는 게 안전합니다.
자동 갱신은 성공 기록보다 실제 접속으로 검증합니다
렛츠인크립트의 기본 인증서는 현재 90일 유효합니다. 공식 일정에는 2027년 기본 인증서 유효기간을 64일로, 2028년에는 45일로 줄이는 계획도 나와 있습니다. 사람이 달력에 적어 갱신하는 방식은 점점 더 부담이 커집니다. 발급 도구의 예약 실행, 갱신 실패 알림, 인증서 만료일 감시를 한 묶음으로 운영해야 합니다.
인증서가 갱신돼도 웹서버 재적용이 빠지면 방문자는 이전 인증서를 받습니다. 반대로 갱신 명령의 종료 상태가 정상이어도 아직 갱신 시점이 아니라 아무 작업도 하지 않았을 수 있습니다. Certbot을 쓴다면 시험 갱신으로 검증 경로를 확인하고, 실제 갱신 성공 뒤에만 웹서버 재적용 작업이 실행되도록 설정할 수 있습니다. 외부 접속에서 만료일이 바뀌었는지 확인해야 한 사이클이 끝납니다.
- 만료 경고가 뜨면 먼저 방문자에게 제공되는 인증서의 이름과 만료일을 확인합니다.
- 갱신 실패라면 검증 경로, 80번 포트, DNS 기록, API 권한 순서로 확인합니다.
- 갱신 성공인데 만료일이 그대로라면 웹서버나 프록시의 인증서 경로와 재적용 기록을 봅니다.
- 서버 이전 시에는 인증서 파일뿐 아니라 개인키, 갱신 설정, 예약 작업을 안전하게 옮기고 외부에서 다시 시험합니다.
저는 인증서 비용을 정할 때 먼저 월 방문자 수를 보지 않습니다. 접속 이름의 수, 인증서가 설치될 장비, 갱신을 맡을 주체를 봅니다. 무료 인증서로 충분한 사이트가 많습니다. 실제로 돈과 시간을 아끼는 지점은 비싼 상품 선택보다 만료 전에 이상을 발견하고, 갱신된 인증서가 방문자에게 제공되는지 확인하는 절차에 있습니다.
