2013-07-19 4 views
37

컬링을 사용하여 SSL 핸드 쉐이크를 디버깅하는 방법은 무엇입니까?SSL 핸드 쉐이크 디버그

클라이언트 인증서로 디렉터리 인증별로 문제를 해결하고 싶습니다. 특별히 받아 들일 수있는 클라이언트 인증서가 서버에서 전송되는지 확인하고 싶습니다. 사전에

덕분에

답변

2

컬 아마 난 항상이

어쩌면 유용한 정보를 많이 제공하는 -debug 옵션을 openssl s_client

을 사용하여 자세한 정보를 보여주는하지만, 이런 것들에 대한 몇 가지 옵션을 가지고 I 이것은 비 HTTP 연결에서도 작동 함을 추가해야합니다. 따라서 "https"를 실행하는 경우 아래에 제안 된 컬 명령을 시도하십시오.

openssl s_client -connect www.test.com:443 -prexit 

아마 "사용 가능한 클라이언트 인증서 CA 이름을"포함 출력과 : 당신이 아니거나 원한다면 내가 클라이언트 인증서 협상 문제를 해결하려면이 명령을 사용했습니다

+1

curl 버전이 GnuTLS와 같은 다른 SSL 라이브러리 ('curl -V '를 사용하여 openssl - check 대신)로 컴파일되는 경우 해당 SSL 라이브러리를 사용하는 바이너리로 연결을 디버깅해야합니다 대신 예. gnutls-cli -V www.google.com 443 –

37

두 번째 옵션 openssl s_client 좋은 수 있습니다 서버가 항상 클라이언트 인증서를 필요로하지 않는 경우 서버의 CA 인증서 목록 또는 "클라이언트 인증서 CA 이름 전송 안 함".

+0

분명히 'openssl s_client ..'는 인증서 체인 만 검사하지만 HTTP 요청 자체는 검사하지 않습니다. 내가 openssl 좋아하는 몇 가지 인증서와 투쟁하지만 컬하지 않습니다 .. – radiospiel

+0

위의 결합'-showcerts' 그리고 그것은 매력처럼 작동했습니다 - 고마워요! – Techmag

14
curl -iv https://your.domain.io 

openssl 명령을 사용하지 않으려면 cert와 헤더 출력이 필요합니다.

관련 문제