클라이언트가 연결하기 전부터 노트북의 파일 이름(nuc.ovpn)과 서버가 자격 증명에서 도출하는 ID, 두 이름이 관여합니다. client-config-dir 조회는 두 번째를 사용합니다. 클라이언트에서 프로필 이름을 바꾸거나 서버 파일에 .conf를 붙여도 서버가 여는 파일은 달라지지 않습니다.

쓸모 있는 비교는 «어떤 이름을 썼나»가 아니라 «서버가 어떤 규칙을 적용하나»인데, 인증서 인증과 사용자 이름/비밀번호 인증은 같은 로그인에서 서로 다른 유효 이름을 만들 수 있기 때문입니다.

프로필 이름과 인증서 공통 이름

기본 인증서 기반 구성에서 서버는 X.509 공통 이름을 가져와 client-config-dir 안에서 정확히 그 이름의 파일을 찾습니다. 인증서가 tester인 nuc.ovpn 프로필은 /etc/openvpn/server/ccd/tester로 해석됩니다. 클라이언트 파일 이름은 계산에 전혀 들어가지 않습니다. 불일치가 숨는 첫 번째 지점입니다.

따라서 이름을 꼼꼼히 붙인 프로필로 가득한 디렉터리도 매번 빗나갈 수 있습니다. 파일은 subject로도, 이메일 주소로도, GUI에 표시되는 이름으로도 대조되지 않고, 공통 이름 문자열로 대조됩니다.

대소문자를 구분하는 파일 시스템에서 Tester와 tester는 서로 다른 파일이며 하나만 열립니다. 공통 이름은 클라이언트가 실제로 제시하는 인증서에서 확인하세요 — 메모의 사본이 아니라.

username-as-common-name은 규칙을 뒤집습니다

서버가 username-as-common-name과 함께 사용자 이름/비밀번호 인증을 실행하면, 인증된 사용자 이름이 이 조회에서 인증서의 공통 이름을 대체합니다.

두 경우를 직접 비교하세요: 인증서 신원에서는 파일이 인증서를 따르고 비밀번호 변경은 무관하며, 사용자 이름 신원에서는 파일이 로그인 이름을 따르고 인증서 재발급은 무관합니다. 서버가 대체하는 필드가 바로 이름을 맞출 기준입니다. 새 CN으로 재발급된 인증서는 조회 대상을 조용히 바꾸고, 예전 CCD 파일은 디스크에 그대로 남아 올바르게 보입니다.

혼합 구성도 존재하며 혼란의 대부분은 거기서 시작합니다. 한 서비스 블록이 대체를 켜고 다른 블록은 켜지 않으면, 유효 이름은 어느 인스턴스가 연결을 처리했는지에 달려 있습니다. 전역 파일이 적용된다고 가정하지 말고 활성 구성을 확인하세요. 상류의 server-options 참조에는 이름 있는 파일 조회와 선택적 폴백이 문서화되어 있습니다.

서버가 읽는 것과 조용히 건너뛰는 것

파일이 선택되는지는 두 가지 작은 차이로 결정됩니다. 첫째는 덧붙은 확장자입니다. 둘째는 이름에 끼어든 문자입니다.

OpenVPN은 찾는 이름에 .conf를 붙이지 않으므로 tester.conf는 tester와 일치하지 않습니다. 확장자를 숨기는 편집기는 목록에서는 올바르게 보이지만 절대 일치하지 않는 파일을 남길 수 있습니다.

일치하는 파일이 없으면 서버는 DEFAULT라는 파일로 폴백할 수 있습니다. 따라서 일부 설정이 도착했다고 해서 클라이언트별 파일이 쓰였다는 증거는 아닙니다. 할당된 주소나 푸시된 경로를 클라이언트별 파일이 만들어낼 내용과 비교하세요. 권한은 세 번째 관문입니다 — 서버는 권한을 내려놓은 뒤 파일을 열기 때문에, root 셸에서 읽을 수 있다고 해서 아무것도 증명되지 않습니다.

올바른 파일 이름이 내용을 검증하지는 않습니다

선택과 내용은 별개의 실패입니다. 올바른 파일이 열렸다 해도 그 지시문은 해당 클라이언트에 유효해야 합니다.

ifconfig-push는 토폴로지가 실제로 쓸 수 있는 주소를 할당해야 하고, iroute는 그 클라이언트 뒤의 라우팅된 서브넷에만 의미가 있습니다.

하나의 ID, 여러 기기

같은 공통 이름을 제시하는 두 노트북은 같은 파일을 선택하고 같은 클라이언트별 설정을 받습니다. 별도의 주소나 별도의 폐기가 필요하다면 필요한 것은 별도의 ID이며, 한 파일의 사본 두 개가 아닙니다.

비교 대상은 ID를 공유하는 것과 기기마다 인증서를 한 장씩 발급하는 것입니다. 공유는 관리가 간단하고 폐기가 거칠며, 기기별 인증서는 준비가 더 들지만 비활성화할 깔끔한 단위를 줍니다.

관련 글