OpenVPN 인증서 갱신: 타이머가 아니라 인증서를 전달하라
인증서를 다시 발급하는 타이머는 쉬운 절반이다. 권한을 부여하고, 전달하고, 활성화하며, 여전히 장치를 복구할 수 있는 갱신 경로와 비교해 보라.
두 갱신 설계는 설계 검토에서는 똑같아 보이지만 일월에는 전혀 다르게 작동한다. 첫 번째는 타이머를 돌리고 인증서를 다시 발급하며 파일을 공유 폴더에 던져 넣는다. 두 번째는 갱신을 전달 문제로 다룬다: 누가 요청하는지, 무엇이 자격을 증명하는지, 자료가 어떻게 장치에 도달하는지, 무엇이 클라이언트로 하여금 그것을 쓰게 하는지. 오프라인 노트북, 폐기된 자산, 조용히 실패한 전달을 견디는 것은 두 번째뿐이다.
두 설계가 실제로 다른 지점에서 비교하라
타이머 설계는 서버 측을 최적화한다. 예약된 작업이 CA를 호출하고, 새 인증서가 나타나며, 운영자는 일이 끝났다고 본다. 발급 이후에 일어나는 모든 일은 다른 사람의 문제다, 장치가 연결에 실패하고 만료 날짜가 이유를 설명할 때까지.
워크플로 설계는 마지막 구간을 최적화한다. 발급이 사슬의 한 고리이고 이후의 각 단계가 독립적으로 실패할 수 있다고 가정한다. 구축에는 더 들고 운영에는 훨씬 덜 드는데, 실패가 만료된 클라이언트가 아니라 추적되는 상태로 나타나기 때문이다.
차이를 시야에 두는 유용한 방법은 각 설계가 명시적으로 이름 붙여야 하는 순서다.
detect window -> authenticate request -> authorize -> issue
-> deliver and stage -> activate -> verify fresh auth -> retire old material인증서 자체에서 창을 감지하라
유효 기간은 클라이언트가 실제로 제시하는 인증서에서 읽어라, 복사된 파일 이름에 박힌 날짜에서 읽지 말고. 파일 이름은 흔들리고, 2026이라고 적힌 파일이 삼월에 만료되는 자격 증명을 담고 있을 수 있다.
느린 경우를 위해 창에 여유를 두라: 몇 주씩 오프라인인 장치, 사람이 필요한 승인, 작동하기 전에 한 번 실패하는 전달 경로다. 성공을 보고하는 타이머는 타이머가 돌았다는 것만 증명한다, 그 이상은 아니다.
무엇이든 발급되기 전에 요청을 승인하라
기존 인증서는 정당한 갱신 메커니즘의 일부가 될 수 있지만, 그 주체 텍스트는 권한 부여 결정이 아니다. 답해야 할 질문은 이 계정과 이 장치가 여전히 플릿에서 신원을 가질 자격이 있는지이며, 그 답은 인증서가 아니라 자산 기록에 있다.
예약된 작업이 아직 도는 폐기된 노트북은 새 권한을 받아서는 안 된다. RFC 7030 여기서 읽을 만한데, 인증된 재등록을 서버 측 권한 부여와 정책에서 분리하기 때문이며, 빌려 올 모델이지 OpenVPN이나 EasyRSA가 그 프로토콜을 제공한다는 주장이 아니다.
전달, 준비, 활성화를 별개의 단계로
발급은 신원, 목적, 발급 관계를 보존하며, 새 키 쌍으로 만든 대체물은 짝이 되는 키가 함께 이동하지 않으면 쓸모가 없다. 쌍은 접근 제어 설계를 뒤에 둔 채널로 전달하라, 추측할 수 없는 URL은 통제가 아니라 은닉이기 때문이다.
준비는 대부분의 자동화가 조용히 깨지는 지점이다. 가져온 프로필이 한 위치에 있는 동안 관리자가 다른 곳에서 파일을 갱신하고, 클라이언트는 누군가 알아차릴 때까지 옛 인증서를 계속 제시한다. 클라이언트가 읽는 경로, 그곳에 쓸 수 있는 계정, 다시 로드를 일으키는 이벤트를 적어 두라. 그다음 대체물이 옆에 도착한 사본이 아니라 실제로 쓰이는 파일인지 확인하라.
검증은 새 자료로 새 인증을 하고 사용자가 필요로 하는 애플리케이션을 확인하는 것이다. 이미 맺어진 터널은 이전 자격 증명을 여전히 반영할 수 있으므로, 열린 연결은 갱신 성공의 증거가 아니다.
놓친 창의 복구를 먼저 설계하라
노트북이 VPN으로만 등록 서비스에 도달한다면, 만료는 순환을 만든다: 장치는 터널에 들어가려고 인증서가 필요하고, 터널은 인증서를 가져오려고 필요하다. 첫 예약 작업이 나가기 전에 대역 밖 방식을 정하라, 별도로 인증된 등록 엔드포인트든 관리자 지원 재등록이든.
무엇을 고르든 요청자와 현재 권한을 검증해야 한다. 요청하는 누구에게나 만료된 인증서를 받아들이도록 서버를 구성하는 것은 복구 경로가 아니라, 나머지 설계로 지켜 온 검사를 영구히 약화하는 일이다.
마지막으로 갱신과 침해를 별개의 절차로 유지하라. 유출된 키에는 폐기와 활성 세션에 대한 대응이 필요하고, 만료일을 늘리는 데는 그중 아무것도 들어 있지 않다. 오프라인 장치, 실패한 전달, 폐기된 자산을 인수 테스트에 넣으면 일정은 활성화할 준비가 된다.