Windows에서 OpenVPN이 ca라고 말하는 이유: 따옴표 없는 경로이지 잘못된 인증서가 아닙니다
따옴표 없는 Program Files 경로는 여러 인수로 쪼개지고 파서는 옵션을 탓합니다. 따옴표와 클라이언트 줄, 인코딩을 확인하세요.
OpenVPN이 시작되지 않고, 실패 메시지는 멀쩡해 보이는 줄을 가리킵니다: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. 인증서는 바뀌지 않았고 파일은 편집기에서 열리며 경로에 이상한 점이 없습니다. 파서는 옵션 이름에 이의를 제기하는 것이 아니라 그 옵션에 인수가 몇 개 딸려 왔는지에 이의를 제기합니다. 네 가지 점검으로 거의 모든 사례가 정리되며, 비용이 낮은 순서로 실행할 가치가 있습니다.
파서가 옵션을 탓하는 이유
모든 구성 줄은 어떤 옵션이 보기도 전에 공백과 따옴표를 기준으로 분할됩니다. 그래서 공백이 든 값은 따옴표로 감싸지 않으면 여러 인수로 도착하고, 그 줄을 소유한 옵션이 불일치를 보고합니다. Windows에서는 C:\Program Files이 구조상 경로 중간에 있기 때문에 기본 설치 폴더로 인해 확실해집니다. 이 실패에서는 인증서가 절대 열리지 않으므로 파일이 있는지 확인해도 유용한 것을 증명하지 못합니다.
보고된 줄 번호는 대개 맞고, 보고된 옵션은 그 줄을 소비한 옵션입니다. 지목된 옵션이 쓴 적이 없다고 아는 옵션이라면, 이전 블록에서 사라진 따옴표가 파싱을 밀어내므로 그 위 줄을 읽어 보세요. 이렇게 해서 인증서 블록이 결국 인수 개수의 책임을 지게 됩니다.
ca C:\Program Files\OpenVPN\config\office-ca.crt공백이 있는 모든 경로를 따옴표로 감싸세요
값 주위에 큰따옴표 한 쌍을 두는 것이 수리의 전부이며, Windows에서는 슬래시도 허용되므로 이스케이프가 문제의 일부가 되지 않습니다. 파서는 첫 실패에서 멈추고 다음 실패는 다음 재시작만 기다리므로, 같은 작업에서 모든 경로 옵션을 고치세요. 보통 포함되는 것은 ca, cert, key, tls-auth, auth-user-pass 입니다.
ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"디렉터리 이름으로 검색하면 파일을 읽는 것보다 빠르게 모든 위치를 찾습니다. 편집 전에 실행해 목록을 완전하게 만드세요:
Select-String -Path .\office.ovpn -Pattern 'Program Files'프로필을 공백 없는 경로로 옮기는 것도 유효한 대안이지만, 모든 경로가 함께 옮겨질 때만 유효합니다. 절반만 옮긴 프로필은 다른 파일 이름으로 같은 오류를 재현하며, 메시지가 방금 만든 경로를 가리키기 때문에 알아채기 더 어렵습니다. 한 가지 방법을 골라 끝까지 진행하세요.
인증서보다 먼저 모드 선언을 되살리세요
두 번째 흔한 원인은 같은 낭비된 오후를 두고 다른 메시지를 냅니다. 클라이언트 프로필은 상단 근처에서 모드를 선언해야 하며, 새 파일에 인증서 블록만 붙여 넣으면 그 선언이 쉽게 사라집니다. 그것이 없으면 OpenVPN은 다른 기본값 집합으로 파일을 읽고, 피해는 훨씬 나중에 옵션 간 충돌이나 로그인 실패로 나타납니다. 빠진 줄은 확인하기는 싸고 잊기는 비쌉니다.
client
dev tun
proto udp
remote vpn.example.net 1194그곳에 있는 동안 한 줄에 지시문 하나를 지키세요. 합쳐진 줄은 첫 절의 인수 개수 오류를 그대로 만들며, 보고된 줄이 그럴듯해 보이는 것은 편집기가 텍스트를 접은 지점에서 합쳐졌기 때문입니다. 표시된 줄이 아니라 원본 줄을 읽으세요.
인코딩 손상은 옵션 이름처럼 보입니다
UTF-16으로 바이트 순서 표시와 함께 저장된 파일은 첫 옵션을 파서에게 숨기며, 떠돌이 바이트가 메시지의 옵션 이름에 달라붙을 수 있습니다. 파일을 바이트 순서 표시 없이 UTF-8로 저장한 뒤 다시 열어 첫 글자가 평범한 글자인지 확인하세요. 편집기, PowerShell 리디렉션, 채팅 창에서 붙여 넣은 텍스트는 모두 묻지 않고 인코딩을 바꿉니다.
Format-Hex .\office.ovpn | Select-Object -First 1바이트 순서 표시는 어떤 텍스트보다 앞서 선행 표식 바이트로 나타나며, 편집기가 다음 저장에서 다시 쓰기 때문에 그 문자를 손으로 지우는 것은 지는 수입니다. 대신 분명한 인코딩으로 파일을 다시 저장하세요. 줄 끝은 더 관대하지만, 끝에 줄바꿈이 없는 파일은 편집 후 마지막 지시문을 앞의 것과 합칠 수 있습니다.
어떤 점검을 먼저 할지, 그리고 그 이유
인코딩은 명령 하나면 되고 파일의 다른 모든 읽기를 무효로 만들므로 거기서 시작하세요. 다음으로 따옴표, 그다음 모드 선언과 다른 필수 지시문, 그리고 그 뒤에야 인증서, 키, 자격 증명입니다. 따옴표 문제를 고치려고 바꾼 인증서는 원본에서 편집 두 번 떨어진 새 고장을 남기므로, 이 순서로 작업하면 각 단계를 되돌릴 수 있습니다. 순서는 개별 점검보다 중요합니다.
운영자가 보낸 그대로의 손대지 않은 사본을 보관하세요. 나중 편집이 파일을 망가뜨리면 그 사본과의 차이가 따옴표, 새 줄, 표식 바이트 중 무엇이 움직였는지 보여 주며, 이는 오류를 다시 읽는 것보다 빠릅니다. 각 지시문의 옵션 설명은 설치된 버전의 OpenVPN 설명서에 있습니다.