OpenSSL, 기본 구성, new_certs_dir, 인증서

OpenSSL, 기본 구성, new_certs_dir, 인증서

openssl-config-file의 차이점과 이 두 구성 매개변수를 사용하는 방법에 대한 답변을 찾고 있습니다.

certs         = ... # Where the issued certs are

그리고

new_certs_dir = ... # default place for new certs 

내부에OpenSSL을 통한 네트워크 보안O'Reilly의 책에서는 이 두 매개변수를 default-openssl-config-file에 배치하지만 certs결코 사용되거나 설명되지 않습니다. 내 테스트에서 openssl모든 인증서는 에서 정의한 폴더에 저장됩니다 new_cers_dir.

이 두 매개변수의 차이점은 무엇입니까? 이 매개변수가 certs어딘가에 사용됩니까?

답변1

문서에 나와 있듯이

https://www.openssl.org/docs/man1.1.0/apps/ca.html

new_certs_dir은 CA에서 새로 생성된 인증서를 출력하는 데 사용됩니다.

여기서는 인증서가 사용되지 않습니다. 그러나 데모CA에서는 다음과 같이 참조됩니다. "./demoCA/certs - 인증서 출력 파일" 인증서는 아래와 같이 인증서 체인에도 사용됩니다.

https://www.openssl.org/docs/man1.1.0/apps/pkcs12.html또는https://www.openssl.org/docs/man1.1.0/apps/verify.html

/etc/ssl/certs는 발급된 인증서의 기본 위치입니다. 하지만 certs 변수는 $dir/certs이므로 ./demoCA/certs입니다. CA 특정 인증서를 발급하기 위한 것이라는 점에 우리 모두 동의할 수 있을 것 같습니다. 이는 CA가 공개 인증 기관에서 발행하지 않은 인증서에 연결된 인증서에 서명할 수 있기 때문에 의미가 있습니다.

그런데 이에 대한 문서는 어디에 있습니까? 나는 그것이 구성 파일의 아티팩트라고 생각합니다. 인증서에 ca.pem을 저장하는 인증서와 같은 옵션에 사용되므로 인증서 = $certs/ca.pem입니다.

나중에 구성 파일에서 사용되었다는 사실을 깨달을 때까지 동일한 문제가 있었던 것을 막연하게 기억하지만 지금은 아닙니다.

편집: 상황이 점점 이상해지고 있습니다. ca.c의 현재 버전은 다음과 같습니다.https://github.com/openssl/openssl/blob/master/apps/ca.c인증서는 참조되지 않습니다. 그러나 이전 버전은 다음과 같습니다.https://github.com/openssl/openssl/blob/d02b48c63a58ea4367a0e905979f140b7d090f86/apps/ca.c 그것을 참고하되 아무 것도 하지 마십시오.

답변2

이에 대한 좋은 참조는 없지만 내 추측과 개인적으로 사용하는 방법은 새로 서명된 인증서를 디렉터리에 저장 new_certs하고 CA 인증서(키가 아님)와 상위 수준 CA 인증서를 디렉터리에 보관하는 것 입니다. 디렉토리 중간 certs.

이는 openssl CA가 아니라 일부 외부 CA 또는 이와 유사한 CA에 의해 서명되었으므로 이를 구별하기 위한 것입니다. 정말로, 그것이 당신에게 적합하다면 그것은 단지 조직을 위한 것입니다.

관련 정보