클라이언트가 연결되고 잠깐 협상한 뒤 인증서가 만료되었다고 보고합니다. 누군가에게 무언가를 재발급해 달라고 요청하기 전에, 눈앞의 기기 날짜를 보세요. 한 달 동안 잠들어 있던 노트북, 수동으로 설정한 시계가 있는 휴대폰, 작동하는 NTP 소스가 없는 라우터는 모두 TLS 스택에 잘못된 시각을 알립니다. 인증서는 유효 기간 창 안에서만 유효하며, 검사는 그 창을 로컬 시계가 주장하는 시각과 비교합니다. 시계를 바로잡은 다음 문제가 실제인지 판단하세요.

기기의 시계부터 시작하세요

터미널을 열고 시스템이 생각하는 UTC를 읽으세요. 데스크톱의 시계 위젯이 아니라, 시간대에 맞춰 조정된 보기나 GUI가 캐시한 오래된 값을 보여 줄 수 있는 위젯 말입니다.

date -u
timedatectl status

시계가 크게 앞서 있으면 유효한 인증서가 만료된 것처럼 보이고, 크게 뒤처져 있으면 아직 유효하지 않은 것처럼 보이며, 일부 클라이언트는 이를 같은 일반적인 핸드셰이크 실패로 보고합니다. 동기화가 비활성화되어 있거나 시간 원본에 연결할 수 없다면 먼저 그것을 고치고 어떤 파일이든 건드리기 전에 다시 테스트하세요. 만료를 피하려고 시계를 뒤로 돌리는 것은 해결책이 아닙니다. 기기의 다른 서비스를 망가뜨리고 신원 문제를 원래 자리에 그대로 남깁니다.

시계가 정확하다면 만료는 실제이며 이 안내의 나머지가 적용됩니다. 두 기기의 타임스탬프를 비교하기 전에 클라이언트 로그가 어느 시간대를 쓰는지 확인하세요. 다른 시간대의 서버는 실제로는 어느 쪽도 아니었는데 갱신이 이르거나 늦어 보이게 할 수 있습니다. 책상 위의 벽시계가 아니라 클라이언트 자체 로그 줄의 타임스탬프와 비교하세요.

프로필보다 오류 줄을 먼저 읽으세요

정확한 텍스트를 보관하세요. OpenVPN의 검증 실패는 깊이와 이유를 명시하며, 이 두 필드가 누가 조치해야 하는지 알려줍니다.

VERIFY ERROR과 error=certificate has expired는 체인의 특정 지점에서의 유효성 실패입니다. 이것은 암호 거부도 시간 초과도 아니며, 세 가지는 서로 다른 대응을 요구합니다.

클라이언트 버전과 함께 전체 줄을 메모에 복사하세요. 메시지가 대신 인증서가 아직 유효하지 않다고 하면 시계 문제로 돌아온 것입니다. 발급자를 알 수 없다고 하면 수명 문제가 아니라 신뢰 문제이며, 아무리 갱신해도 바뀌지 않습니다.

어떤 인증서가 만료되었는지 찾으세요

깊이 영은 연결한 피어가 제시한 인증서이며, 깊이가 높아질수록 루트에 가까워집니다. 업무용 VPN은 보통 클라이언트 ID나 서버 인증서를 만료시키고, 때로는 조직이 소유 사실을 잊은 중간 인증서도 만료시킵니다.

프로필이 실제로 참조하는 파일의 날짜를 오류에 명시된 깊이의 파일부터 출력하세요.

openssl x509 -in client.crt -noout -subject -issuer -dates
openssl x509 -in ca.crt -noout -subject -dates

프로필이 파일을 가리키는 대신 인증서를 인라인 블록으로 포함한다면, 디스크의 별도 파일이 클라이언트가 쓰는 것보다 오래되었거나 새로울 수 있습니다. 그래서 오류를 파일과 맞추려면 디렉터리 목록이 아니라 프로필을 읽어야 합니다.

발급자를 통해 갱신하세요

클라이언트 인증서는 발급한 사람이 교체하며, 계정 비밀번호를 재설정해도 아무것도 갱신되지 않습니다. 업무 연결에는 조직이 공개한 갱신 채널을 사용하세요. 호스팅 서비스라면 새 프로필이 들어 있다고 주장하는 첨부 파일을 여는 대신 검증된 주소로 공급자 포털에 로그인하세요. 요청하지 않은 번들은 파일 이름에 VPN이 언급된다는 이유만으로 신뢰할 수 없습니다.

서버를 운영한다면 물자를 교체하기 전에 공개 세부 정보와 발급 기록을 확인하세요. CA 변경은 그것을 신뢰하는 모든 클라이언트에 영향을 줍니다.

하나의 신원을 갱신하는 데 신뢰 계층을 교체할 필요는 없어야 합니다. 만료된 리프 하나를 고치려고 새 CA를 제안하는 사람이 있다면, 먼저 옛 CA에 무엇이 더 의존하는지 물으세요. RFC 5280 의 유효성 및 경로 규칙이 양측이 따르는 모델입니다.

클라이언트가 교체본을 사용하도록 하세요

파일을 다운로드하는 것은 가져오는 것이 아닙니다. 실제로 선택하는 연결 항목을 확인하고, 덮어쓰는 것을 잊은 외부 인증서 경로를 프로필이 참조하는지 확인하세요.

새 항목이 연결될 때까지 옛 항목을 보이게 두었다가 제거하여 아무도 습관적으로 만료된 프로필을 선택하지 않게 하세요. 다시 연결하고 특정 만료 오류가 사라졌는지 확인하세요.

다른 TLS 오류가 남는다면 검증 설정을 약화시켜 통과시키지 말고 새 문제로 다루세요. 갱신이 성공한 뒤의 계정 거부나 누락된 경로는 별도의 결함이며 별도의 해결책이 필요합니다.

관련 글