사용자 인증에 TLS 클라이언트 인증서를 사용하는 웹 서비스가 있습니다. 이제는 서비스가 인증서 인증을 올바르게 구현 ("수행하도록 구성되었습니다")하는 경우 전체 스택 테스트를 작성하려고합니다.일치하지 않는 키/인증서의 경우 TLS 인증서 인증
특히 제시된 클라이언트 인증서와 일치하지 않는 키를 사용하여 요청을 암호화 할 수 있는지 궁금합니다.
테스트는 Python으로 작성하는 것이 가장 이상적이지만 다른 일반적인 언어도 사용합니다.
그래서 내 첫 번째 시도는 파이썬의 requests
패키지를 사용하여이었다
requests.post(url, data=payload, cert=(cert_path, key_path), verify=False)
키가 인증서와 일치하지만, 불일치의 경우 그냥 얻을 경우 작동 클라이언트가
requests.exceptions.SSLError: [X509: KEY_VALUES_MISMATCH] key values mismatch (_ssl.c:2718)
요청이 서버에 결코 도달하지 않으므로 (그리고 따라서 아무 것도 테스트하지 않습니다.)
내 질문은 : 실제로 잘못된 인증서를 제시 할 수 있습니까 아니면 프로토콜 디자인으로 불가능합니까? 그러한 테스트를 구현하는 방법에 대한 힌트가 있습니까?
올바른 개인 키가없는 한 인증서를 제시 할 수 없습니다. 개인 키를 사용하여 만든 디지털 서명을 제시해야만 인증서를 소유 할 수 있습니다. SSL API를 사용할 수 없다는 것을 알고 있습니다. – EJP