배치 파일이 “시스템이 지정된 레지스트리 키나 값을 찾을 수 없습니다”라는 메시지와 함께 멈추면 모두가 인증 기관이 망가졌다고 가정합니다. 그렇지 않습니다, 적어도 아직은: 스크립트는 Easy-RSA에 키로 무언가를 하라고 요청하기 전에 소프트웨어를 찾다가 실패했습니다. 이 순서가 중요합니다. 수리는 조회 문제이고 PKI는 방관자라는 뜻이기 때문입니다. 실패한 줄을 읽는 것이 진단의 전부이며, 어떤 우회 방법보다 시간이 적게 듭니다.

오류는 CA를 건드리기 전에 발생합니다

오래된 Easy-RSA 2 배치 파일은 레지스트리를 조회해 OpenSSL이나 OpenVPN 설치 위치를 찾은 다음, 찾은 내용으로 변수를 설정합니다. 조회가 아무것도 반환하지 않으면 인증서 작업이 실행되기 전에 스크립트가 중단됩니다.

따라서 레지스트리 키에 관한 메시지는 스크립트 환경에 대한 증거이며 CA 디렉터리에 대한 증거가 아닙니다.

두 개의 레지스트리 보기, 하나의 배치 파일

32비트 프로세스와 64비트 프로세스는 서로 다른 레지스트리 보기를 볼 수 있으며, 하나를 전제로 한 배치 파일은 다른 쪽에 있는 항목을 놓칠 수 있습니다. 이 읽기 전용 비교는 일부 오래된 스크립트가 쓰는 레거시 키의 차이를 보여 줍니다:

reg query "HKLM\SOFTWARE\OpenVPN" /reg:32
reg query "HKLM\SOFTWARE\OpenVPN" /reg:64

Microsoft의 reg query 참조 문서가 보기 선택자를 설명합니다. 실패한 스크립트와 같은 컨텍스트에서 둘 다 실행하세요. 보기는 프로세스가 시작되는 방식과 플래그에 모두 달려 있기 때문입니다. 항목이 한 보기에만 있으면, 무엇이든 바꾸기 전에 그것이 가리키는 경로를 설치된 도구와 비교하세요. 존재하지만 오래된 설치 디렉터리를 가리키는 키는 없는 키와 다른 결함입니다.

두 보기 모두에 항목이 없으면 설치 프로그램이 그것을 만든 적이 없으며, 값을 손으로 만들어도 도구가 작동하지 않습니다.

/reg:64를 무조건 추가하지 마세요

유혹적인 수정은 모든 조회에 64비트 선택자를 덧붙이고 넘어가는 것입니다. 일부 설치에서는 그것이 맞고, 다른 설치에서는 스크립트를 정말 아무것도 없는 보기로 보냅니다.

기대하는 값이 어느 보기에 있는지 확인한 뒤에만 조회를 바꾸세요.

발견은 PKI 수리가 아닙니다

이 오류는 CA 인증서, 서명 키, 일련번호 파일, 폐기 데이터베이스가 손상되었다는 것을 입증하지 않습니다. 오래된 자습서에서 복사한 clean-all을 실행하면 전혀 다른 객체 집합을 파괴하면서 조회는 깨진 채로 남습니다. 두 작업을 머릿속에서도 티켓에서도 분리하세요. 나중에 인증서 작업이 실패하면 그 자체의 증거로 평가하세요.

어떤 실험이든 전에 CA 디렉터리를 백업하세요. 읽기 전용이라고 확신하는 실험이라도 마찬가지입니다.

Easy-RSA 3으로 옮기는 것은 마이그레이션입니다

유지 관리되는 설치에서는 현재 패키지 자체의 실행기와 구성 모델을 사용해야 하며, Easy-RSA 3는 Easy-RSA 2와 같은 배치 파일 워크플로가 아닙니다. 새 PKI를 위한 빠른 시작은 기존 기관을 위한 마이그레이션 지침이 아닙니다. 버전을 바꾸기 전에 CA 자료와 발급 및 폐기 기록을 보존하고, 해당 버전의 업그레이드 지침을 따르세요. 도구 발견 오류를 없애려고 권위 디렉터리 안에 대체 CA를 초기화하는 것은 목록에서 가장 나쁜 선택입니다.

버전 변경은 프로젝트이고, 레지스트리 오류는 반나절입니다.

실제로 해결하는 비교

네 가지를 적고 직접 비교하세요:

  • 어떤 스크립트가 실행되었고 어느 줄이 실패했는지.
  • 그 줄이 어느 레지스트리 보기를 조회했는지.
  • 스크립트가 어떤 실행 파일 경로를 기대했는지.
  • 머신에 실제로 어떤 설치가 있는지.

이 네 가지가 맞아떨어지면 오류는 사라지고, 남은 인증서 문제는 CA를 탓하는 대신 그 자체의 증거로 읽을 수 있습니다.

관련 글