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에 의해 서명되었으므로 이를 구별하기 위한 것입니다. 정말로, 그것이 당신에게 적합하다면 그것은 단지 조직을 위한 것입니다.