혁신적이면서 상당히 광범위하고 간간히 전문적인 상식과 진실에 기초한 정신과 이노의 본격 아나키 블로그

Posted
Filed under 이노/Programmings
최근 AWS Gateway기능을 써볼 기회가 생겼는데 Indy에서 접속이 되지 않는 문제가 발생했다.
Delphi의 RestClient, NetClient는 정상적으로 접속되는데 유독 Indy만 접속되지 않는 상황.
소스를 따라가보니 RestClient는 NetClient를 베이스로 쓰는것 같고 NetClient는 Windows의 SSL기능을 그대로 가져다 쓰는 것 같다.
설치된 Client가 WindowsXP가 아직도 많고 SP3가 설치되었다고 가정할 수도 없는 상황에서 API Gateway는 조만간 SSLv3를 버릴 분위기라 TLS1.0은 반드시 지원해야 하는 상황.

OpenSSL이 문제인지 Indy의 버그인지 확인해볼 필요가 있어 OpenSSL라이브러리로 직접 테스트 해 볼 필요가 있다고 판단하여 방법을 찾아보았다.
컴파일된 OpenSSL 바이너리를 구해보면 openssl.exe가 있는데 이 프로그램에서 기능을 지원한다.

openssl s_client -connect localhost:443

정상적으로 접속되는지 확인해 볼 수 있다.

여담)
현재까지 확인된 문제는 SSL Certification에서 Handshake에서 서버쪽에서 hello가 두번 날라온다.
실제로 두번 날라오는지 아니면 OpenSSL에서 잘못 처리하는지는 좀 더 확인이 필요.

2016.07.28 추가함
문제는 Server Name Indication 이슈였음. 결국 SSLv3를 지원한다고 하는데 SNI는 TLS의 선택사항이기 때문에 SSLv3는 지원되지 않는다고 보는 것이 정신건강상 좋을 것 같다.
2016/07/27 10:30 2016/07/27 10:30