openssl을 사용하여 만료되었지만 여전히 유효한 중간 CA를 갱신하는 방법은 무엇입니까?

openssl을 사용하여 만료되었지만 여전히 유효한 중간 CA를 갱신하는 방법은 무엇입니까?

우리는 자체 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를 업데이트하면 됩니다. 다른 일련 번호를 받게 됩니다.

관련 정보