우리는 자체 OpenVPN 서버 CA 인프라를 보유하고 있습니다. 자체 서명된 루트 CA를 만든 다음 각 OpenVPN 프로세스/네트워크에 대해 중간 CA를 만들었습니다. 다음 명령을 사용하여 중간 CA를 생성합니다.
openssl req -new -batch -days 3650 -newkey rsa:2048 -nodes sha256 -keyout network.hostname.ca.key -out sign_request.csr -subj "/C=land/ST=region/L=town/O=org/OU=CAnetwork/CN=cn/emailAddress=email" -config /path/to/config
openssl ca -cert root.ca.crt -keyfile root.ca.key -in sign_request.csr -out network.hostname.ca.crt -noemailDN -md sha256 -extensions v3_ca -outdir /some/dir -config /path/to/config -batch
이제 중간 CA가 곧 만료될 예정이며(몇 달 내로) 인증서를 갱신하고 싶습니다. 10년 전과 똑같은 명령을 실행하여 이를 시도했지만 새 키를 생성하는 대신 중간 ca의 이전 키를 사용했습니다(발급된 인증서가 유효하게 유지되기를 원했기 때문입니다!). 그러나 이것은 불평했다 Serial number 01 has already been issued
. 일련번호 01은 현재/유통기한 중간 제품의 일련번호입니다.
기존의 유효한 중간 CA를 무시하고 더 긴 유효 기간으로 다시 생성하여 새 CA가 만료된 이전 CA로 생성된 클라이언트 인증서의 유효성을 계속 검사하도록 openssl에 지시하려면 어떻게 해야 합니까?
답변1
CSR 생성 명령이 잘못된 것 같습니다.
openssl req -new -batch -days 3650 -newkey rsa:2048 -nodes sha256 -keyout network.hostname.ca.key -out sign_request.csr -subj "/C=land/ST=region/L=town/O=org/OU=CAnetwork/CN=cn/emailAddress=email" -config /path/to/config
network.hostname.ca.key라는 새로운 키가 생성됩니다. 실제로 갱신하려면 기존 키를 사용해야 할 수도 있습니다. 제 생각에는 다음과 같습니다.
openssl req -new -batch -days 3650 -key network.hostname.ca.key -sha256 -out sign_request.csr -subj "/C=land/ST=region/L=town/O=org/OU=CAnetwork/CN=cn/emailAddress=email" -config /path/to/config
답변2
문제는 동일한 CN이 유효한 두 개의 인증서를 동시에 가질 수 없다는 것입니다. openssl.cnf에는 이를 허용하는 옵션이 있지만 원하는 것은 아닙니다. int ca를 취소하고 동일한 개인 키와 동일한 속성을 사용하여 새 요청을 생성하고 서명하는 것이 더 나을 것이라고 생각했습니다. 귀하의 모든 요구 사항을 충족해야합니다
아주 잘 설명하는 이 링크를 찾았습니다.
https://serverfault.com/questions/306345/certification-authority-root-certificate-expiry-and-renewal
편집: 더 많은 콘텐츠를 추가했습니다. 인증서 확인에는 발급자 == int ca 주제 발급자 일련 번호 #== int ca 일련 번호 이상이 포함되어 있는 것 같습니다.
따라서 동일한 세부 정보로 int ca를 업데이트하면 됩니다. 다른 일련 번호를 받게 됩니다.