내가 이해한 바에 따르면 SSL 협상 중에 클라이언트(즉, 컬)는 암호 목록을 서버에 보내고 서버는 선호하는 선택 사항으로 응답합니다.
컬이 보낸 비밀번호 목록을 보는 방법은 무엇입니까?
답변1
컬 비밀번호 요청 감지를 서비스로 제공하는 웹사이트가 있습니다.
curl https://www.howsmyssl.com/a/check
그러나 모든 비밀번호를 허용하는 것은 아닙니다. 허용하는 비밀번호 중 하나가 컬에서 보낸 목록에 없으면 전혀 응답을 받을 수 없습니다.
답변2
당신은 그것을 사용할 수 있습니다와이어샤크. 예를 들어, "tcp port 443"에 대한 패킷 필터를 설정한 다음 디스플레이 필터를 "ssl"로 설정하면 다음과 같은 출력이 표시됩니다.
"Client Hello" 패킷에 TLS_AES_128_GCM_SHA256
.
답변3
이 답변 [1]은 좋은 시작이지만 실제로 자체 서명 인증서를 생성하는 방법을 모호하게 만들고 이 부분이 없으면 답변이 작동하지 않습니다. 또한 자체 서명 인증서를 생성하는 방법에 대한 지침이 포함된 [2]에 링크된 문서에서는 OpenSSL을 사용하고 있는데, 이는 일부 목적에는 유용하지만 프로세스를 더 어렵게 만들기 때문에 자체 서명 인증서를 생성하는 데는 적합하지 않을 수 있습니다. 필요한 것 이상입니다. 이를 위해 훨씬 더 간단한 또 다른 도구 [3]를 찾았습니다.
generate_cert -host localhost
외부 종속성 없이 Go로 작성된 단일 파일일 뿐입니다. 위 명령을 실행한 후 OpenSSL 또는 유사한 명령을 사용하여 서버를 시작할 수 있습니다.
openssl s_server -msg -accept 8080 -cert cert.pem -key key.pem
그런 다음 다음과 같이 요청하십시오.
curl -k https://localhost:8080