2021년 9월 30일 자 Let's Encrypt 인증서 오류 해결방안
1. 현상
Let's Encrypt 인증서를 사용하는 웹사이트에 접속했을 때, NET::ERR_CERT_DATE_INVALID 에러가 발생한다.
Edge, Chrome 에서 에러가 발생한다(Firefox 는 그렇지 않다).
2. 원인
Windows 10 등 에서 루트 인증서를 자동으로 업데이트 할 수 없도록 설정되어 있는 경우
안드로이드(Android)의 경우
< 7.1.1
버전에서 문제가 발생한다.
3. 해결방안
3.1. 서버에서
일단은 서버가 TLS 1.3 을 지원하도록 변경한다.
생각외로 많은 클라이언트에서 문제가 해결된다.
필자는 TLS 1.3 에 대해 잘 모르지만, 오래된 클라이언트에서 필자가 운영하는 웹사이트는 에러가 발생하는데, Let's Encrypt 는 정상적으로 접속되는 것을 우연히 발견하였는데, Let's Encrypt 가 TLS 1.3 을 지원하는 차이가 있다는 것을 알게 되었다.
웹서버가 비교적 최근에 발표된 버전이고, OpenSSL 이 TLS 1.3을 지원하는 버전이라면, 설정 파일을 변경하여 재기동하는 것으로 족하지만, 그렇지 않은 경우 수고를 해야한다.
다만 서버에서 완벽한 해결책은 없다. TLS 1.3 은 비교적 최근에 발표되었는데, 그 이전에 TLS 1.3 을 지원하지 않은 클라이언트에서는 큰 의미가 없다.
3.2. 클라이언트에서
3.2.1. Firefox 최신버전을 설치하는 방법
Firefox 최신버전이라면, 운영체제의 버전과 상관없이 문제가 발생하지 않는다.
Edge, Chrome 은 운영체제에 매어있지만, Firefox 는 자체적으로 인증서를 관리하기 때문이다.
3.2.2. Windows 10 에서 루트 인증서를 자동으로 업데이트 하도록 설정하는 방법
regedit 를 실행시켜, 컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot
를 찾아서, DisableRootAutoUpdate
값을 "0"으로 변경한다.
4. 잡담
서버가 TLS 1.3 을 지원하도록 해야겠지만, 완벽한 해결책이라고는 할 수는 없다.
완벽하지는 않지만, 그것이라도 하는 것을 권장한다.
시간이 지나고 클라이언트가 업데이트 되면서 자연스럽게 해결될 문제이긴 하지만, 클라이언트에서 해결해야 한다는 것은 억지스럽게 느껴진다.
사용자가 인증서 오류를 무시하는 습관에 길들여진다면, 인증서 시스템 자체가 무력화될 수도 있다.
서버 설정의 문제인지 확인하기 위해서는 인증서 에러가 발생하는 client 에서 Let's Encrypt 공식 홈페이지에 접속해서 동일한 에러가 발생하는지 확인하는 방법이 있다.