노트북 한 대에 인증서가 하나 더 필요하지만, 검색 결과의 첫 안내는 PKI 디렉터리를 지우는 명령으로 시작합니다. 그 명령은 최초 설정용이며 등록용이 아니고, 실행하면 CA, 발급 이력, 이전 발급자를 신뢰하던 모든 클라이언트 프로필을 잃습니다. 결정은 더 좁습니다. 기존 발급자에 쓸 수 있는 상태가 남아 있는지, 새 장치가 지금의 등록 정책에 맞는지입니다. 세 조건이 결정하며 재구성이 정당화되는 경우는 하나뿐입니다.

재구성이 실제로 파괴하는 것

PKI를 다시 초기화하면 디렉터리가 빈 구조로 바뀝니다. 새 CA 키와 인증서, 빈 발급 데이터베이스, 새 일련번호 카운터입니다. 클라이언트는 조용히 따르지 않습니다. 프로필이 이전 CA를 고정하므로 기존 장치는 모두 다시 등록해야 하고 접근할 수 없는 장치는 수작업입니다.

더 조용한 손실은 대장입니다. 해지는 어떤 일련번호를 누구에게 발급했는지 아는 데 달려 있습니다. 색인을 지우면 서명은 계속할 수 있지만 남은 인증서 중 무엇을 해지하려 했는지 확신 있게 말할 수 없습니다. 발급자 상태가 없는 CA 디렉터리는 시스템의 잘못된 절반을 복원하는 백업입니다.

CA 개인 키를 실행 중인 서버 옆에 복사하는 것은 거부해야 할 또 하나의 지름길입니다. 오프라인에 두어야 할 서명 권한을 신뢰할 수 없는 트래픽을 종료하는 호스트의 파일 하나로 만듭니다.

첫 조건: 발급자 상태에 아직 접근할 수 있는가

결정하기 전에 서버가 실제로 신뢰하는 디렉터리를 찾으십시오. 서버가 CA로 제시하는 인증서를 PKI 디렉터리의 것과 지문으로 비교하고 파일 이름으로 비교하지 마십시오.

openssl x509 -in ca.crt -noout -fingerprint -sha256
openssl x509 -in /etc/openvpn/ca.crt -noout -fingerprint -sha256

지문이 같으면 등록은 증분이며 아무것도 재구성하지 않습니다. 다르면 서버가 신뢰하지 않는 CA로 서명하게 되고, 인증서는 깔끔히 설치되지만 핸드셰이크에서 실패합니다. 그 실패는 몇 시간 동안 클라이언트 결함으로 오진됩니다.

다음으로 발급 상태를 찾으십시오. 색인 파일, 일련번호 카운터, CRL 번호 파일입니다. 색인이 없어도 키가 남아 있으면 발급은 가능하지만 해지 기록 문제를 물려받습니다. 변경 기록에 남기십시오. 다음 해지 요청이 그것을 드러냅니다.

둘째 조건: 새 개인 키를 누가 갖는가

사용자가 체감하는 결정이므로 명시적으로 내리십시오. 클라이언트가 만들어 요청으로 보낸 키는 첫 명령부터 개인 부분이 장치에 남고 관리자는 건드리지 않습니다. 서버가 만든 키는 도구가 없는 장치에 쉽지만 관리자가 모든 키의 보관자가 되고 서버 침해의 영향을 넓힙니다.

기존 CA에 대해 Easy-RSA 3로 요청을 가져와 서명하는 것은 두 명령입니다.

./easyrsa import-req /tmp/alice.req alice
./easyrsa sign-req client alice

인증서 유형을 의도적으로 고르십시오. 클라이언트 대신 서버 인증서로 서명한 요청은 보기에는 정상이나 상대가 거부하며 오류 메시지는 이유를 거의 말하지 않습니다. openssl ca로 서명하면 같은 선택이 전달하는 확장에 있고 기본 섹션에는 없습니다.

셋째 조건: 서버가 인증서보다 더 필요한가

인증서 인증을 쓰는 일반 OpenVPN 서버에서 인증서가 곧 등록입니다. 공통 이름이 클라이언트 ID가 되고 클라이언트별 디렉터리, 푸시 경로, 고정 주소가 그 이름에 연결됩니다. 인증서만 추가하고 설정을 잊으면 터널은 연결되지만 필요한 경로가 나타나지 않습니다.

플랫폼에 따라 다릅니다. OpenVPN Access Server는 자체 사용자 데이터베이스를 두므로 서명된 인증서가 계정이 아닙니다. 계정이 있어야 하고 허용되어야 합니다. 다른 게이트웨이는 ID 문자열을 그룹에 매핑합니다. 장치 하나의 등록은 보통 두 시스템을 건드리며 인증서는 첫 번째일 뿐입니다.

증분 절차와 재구성이 맞는 경우

피해 없이 장치 하나를 추가하는 순서는 이렇습니다. 지문으로 발급자를 확인하고 PKI 디렉터리의 새 백업을 뜨고 클라이언트 역할의 요청을 가져와 서명하고 승인된 경로로 인증서를 체인과 함께 전달하고 사용자가 연결하기 전에 검증합니다.

openssl verify -CAfile ca.crt alice.crt
openssl x509 -in alice.crt -noout -subject -issuer -dates -purpose

용도 줄에는 SSL client가 보여야 합니다. 발급 뒤 CA 백업을 갱신하며 끝내십시오. 새 일련번호를 기록하기 전의 백업은 방금 추가한 장치가 없는 상태를 되돌립니다.

재구성은 세 경우에 맞습니다. CA 키가 침해되었거나, 발급 상태가 복구 불가능하게 소실되었거나, 키 알고리즘이나 인증서 정책을 의도적으로 바꾸는 경우입니다. 셋 모두 모든 클라이언트의 재등록 계획이 필요한 프로젝트이며 장치 하나 요청의 단계가 아닙니다. 해당하지 않으면 증분으로 등록하십시오.

관련 글