서버가 쓰는 인증서와 그것과 함께 배포하려는 개인 키를 붙여넣으면,
이 페이지가 배포된 사이트가 실패하는 질문에 답합니다. 이 둘이 같은 키 쌍에서 나왔는가? 답은
모듈러스 길이나 지문만으로 추측하는 것이 아닙니다 — 페이지가 개인 키로 고정된 챌린지에
서명하고 그 서명을 인증서 안의 공개 키로 검증합니다. 검증이 통과하면 둘은 함께 속하고,
실패하면 구성을 아무리 고쳐도 작동하지 않습니다. 두 독해가 알고리즘, 키 크기, 주체 키
식별자, 공개 키 지문과 나란히 표시되며, 붙여넣은 것은 브라우저를 떠나지 않습니다.
1. 인증서 또는 체인
블록은 얼마든지 붙여넣으세요. 모든 인증서가 모든 키와 대조되므로,
체인에 키 하나를 붙이면 그 키가 체인의 어느 인증서에 속하는지 정확히 알려 줍니다 — 번들에서
잘못된 인증서를 서빙하는 서버에서 흔한 놀람입니다. PEM, 순수 base64 또는 16진수 본문,
PKCS#7 .p7b 파일이 모두 읽힙니다. 키가 정해지면
인증서 검사기가 인증서 자체를 감사합니다.
2. 개인 키, 또는 공개 키
PKCS#8(BEGIN PRIVATE KEY), PKCS#1
(BEGIN RSA PRIVATE KEY), SEC1(BEGIN EC PRIVATE KEY)과
순수 SPKI 공개 키(BEGIN PUBLIC KEY)가 모두 이해되며, base64나 16진수로 붙여넣은
키 파일도 그렇습니다. 암호화된 PKCS#8 키(BEGIN ENCRYPTED PRIVATE KEY)는 브라우저가 읽을 수 없어
암호문을 제거하는 명령과 함께 그렇게 보고됩니다.
아직 검사된 것이 없습니다
샘플은 자체 서명 인증서와 그것에 속한 개인 키이며, 둘 다 이 페이지를 위해 만들어졌고 아무것도 보호하지 않습니다. 키를 다른 키로 바꾸면 반대 판정을 볼 수 있고, 개인 키 대신 공개 키 블록을 넣으면 공개 키 일치를 볼 수 있습니다.
웹 페이지에 붙여넣는 개인 키는 먼저 한 번 더 생각할 가치가 있습니다. 이 페이지는 일반 JavaScript 파일 하나이며, 어디서도 아무것도 로드하지 않고 요청도 하지 않으므로, 키는 이 탭 안에서 읽히고 쓰이고 잊힙니다. 그래도 볼 수 있는 네트워크의 보증이 아니라 읽을 수 있는 코드의 약속입니다. 운영 키를 다룬다면 오프라인에서 작업하고, 가장 안전한 검사는 자신의 서버에서 같은
openssl 명령이라는 점을 고려하세요. 여기 붙여넣은 키는 절대 저장되지 않고, 파일에 쓰이지 않고, 어디에도 전송되지 않습니다 — 내보내기 버튼도 포함해서, 키에 관한 판정은 기록하지만 키 자체는 결코 기록하지 않습니다.
서명이 답인 이유. 두 파일이 비슷해 보여도 어긋날 수 있습니다. 대부분의 가이드는 RSA 키를 모듈러스로 비교하지만, 그것은 RSA에만 통하고, 키는 올바른 모듈러스를 담고도 지수가 손상되었거나 패딩이 틀릴 수 있습니다. 이 페이지는 핸드셰이크가 하는 방식으로 쌍을 증명합니다 — 개인 키로 고정된 챌린지에 서명하고 인증서 안의 공개 키로 검증 — 그래서 판정은 RSA, ECDSA, Ed25519 모두에서 성립합니다. 공개 절반만 붙여넣었을 때는 공개 키 바이트 자체를 인증서 안의 것과 비교하며, 신원 확인으로는 똑같이 결론적이지만 누군가 개인 절반을 쥐고 있다는 증명만 없습니다.
일치가 말해 주지 않는 것. 서버가 실제로 로드한 키라는 것, 인증서가 신뢰된다는 것, 키 파일이 디스크에 온전하다는 것, 키가 다른 누군가에 의해 복사되지 않았다는 것. 또한 클라이언트가 받을 인증서가 이것인지도 말할 수 없습니다. 사이트 앞의 로드 밸런서나 CDN이 다른 것을 서빙할 수 있기 때문입니다. 실제 서버가 제시하는 것이 무엇인지 확인하려면
openssl s_client -connect example.com:443 -servername example.com
-showcerts를 실행해 그 출력을 인증서 상자에 붙여넣으세요.
파일이 오는 곳. 인증서는 서버가 구성된 것이거나 브라우저에서 내보낸 것이거나 .p7b 번들에서 꺼낸 것입니다. 개인 키는 웹 서버가 시작할 때 읽는 파일로, 보통 privkey.pem이나
server.key 같은 것입니다. 키가 암호화되어 있으면 먼저 사본을 openssl pkcs8 -topk8 -nocrypt -in key.pem -out key-plain.pem으로 복호화하고 그것을 붙여넣은 뒤 사본을 지우세요.
일치 보고서
아직 검사된 것이 없습니다. 위에 인증서와 키를 붙여넣고
일치하는지 검사를 누르세요. 판정이 그 뒤의 증거와 함께 여기에 나타나며, 보고서는 복사하거나 저장할 수 있습니다.
자신의 기계에서 openssl로 하는 같은 검사
# 인증서 안의 공개 키
openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl sha256
# 개인 키 안의 공개 키
openssl pkey -in key.pem -pubout | openssl pkey -pubin -outform DER | openssl sha256
# 두 다이제스트는 쌍이 함께 속할 때만 같습니다
# 구형 RSA 전용 방법: 모듈러스 비교
openssl x509 -in cert.pem -noout -modulus | openssl md5
openssl rsa -in key.pem -noout -modulus | openssl md5
다이제스트 비교는 모든 키 유형에서 작동하고 이 페이지가 공개 키 지문으로 보고하는 것과 일치합니다. 모듈러스 비교는 RSA에만 존재합니다. 둘 중 어느 것도 누군가 개인 절반을 쥐고 있음을 증명하지 못합니다 — 위의 서명 검사가 그렇게 하므로 이 페이지가 그것을 씁니다.
보고서가 담는 것. 판정, 그것이 나온 두 독해의 쌍(인증서와 키 각각의 알고리즘, 키 크기, 곡선, 주체 키 식별자, 공개 키 지문), 그리고 실행된 정확한 검사. 보고서는 개인 키 자체를 결코 담지 않습니다. 키는 서명을 만드는 데 쓰이고 텍스트, JSON, 클립보드에 기록되지 않습니다. 복사하거나 저장하는 것은 티켓에 붙여도 안전합니다. 붙여넣은 키는 그렇지 않으므로, 클립보드를 그것이 존재했던 유일한 다른 장소로 취급하세요.
프라이버시: 인증서와 키는 탭 안에서 읽히고, 아무것도 업로드되지 않으며, 페이지는 전혀 요청을 하지 않습니다 — 이 페이지에는 탐지도 조회도 없습니다. 일치하는 쌍을 만들려면
자체 서명 인증서
생성기를, 가진 키에 대한 인증서를 요청하려면
CSR 생성기를, 인증서 내용을 읽으려면 인증서 디코더를 쓰세요.