
OpenSSL 인증서가 있습니다. 개인 키도 필요합니다. 서버 어딘가에 있다고 들었는데, 사실 여러 개의 SSL 키 파일을 발견했습니다.
무차별 대입으로 모든 것을 시도하기 전에: 인증서를 생성하는 데 개인 키가 사용되었는지 터미널에서 확인할 수 있는 방법이 있습니까?
답변1
이에 대한 고전적인 참조는 다음과 같습니다.이 FAQ온라인 Apache 문서에서.
해당 문서에서는 md5
모듈러스가 사용되었습니다.
공개 지수는 일반적으로 65537이고 긴 모듈러스 숫자가 동일한지 시각적으로 확인하기 어렵기 때문에 다음 접근 방식을 사용할 수 있습니다.
이는 다음을 제공합니다:
$ openssl rsa -noout -modulus -in key.pem.decrypted | openssl md5
(stdin)= 9fxxfoobar558d9xx0045a89467d2bxx
$ openssl x509 -noout -modulus -in crt.pem | openssl md5
(stdin)= 9fxxfoobar558d9xx0045a89467d2bxx
나는 모듈러스의 시각적 비교를 피하기 위해 프로세스 대체 사용을 제안합니다.
$ diff \
<(openssl x509 -noout -modulus -in cert.pem) \
<(openssl rsa -noout -modulus -in key.pem.decrypted)
출력이 비어 있으면 개인 키가 인증서와 일치합니다.
이것은 Andrew Schulman의 답변에 있는 것보다 문자열을 비교하는 더 편리한 방법이며, 물론 유효합니다.
또 다른 참고자료여기.
답변2
인증서 파일이 특정 개인 키 파일과 연결된 공개 키를 인증하는지 확인하려면 각각과 연결된 공개 키를 비교하세요.
openssl rsa -in KEYFILE -pubout
openssl x509 -in CERTFILE -pubkey -noout
인증서와 개인 키는 공개 키가 동일한 경우에만 일치합니다.