ㅍㅍㅋㄷ

git gnutls_handshake() 에러 발생시 해결 방법 본문

IT/ETC

git gnutls_handshake() 에러 발생시 해결 방법

클쏭 2016. 5. 13. 19:30



gnutls_handshake() failed: Illegal parameter 발생시 해결 방법


root@~~# git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/XXX

Cloning into 'XXX'...

fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/XXX/': gnutls_handshake() failed: Illegal parameter


git을 쓰려고 설정 하다 보니 위와 같은 메시지가 뜨면서 안되는 경우가 있었다. 

필자의 경우 github 쓸때는 문제가 없었는데 AWS의 CodeCommit 을 사용시 이슈가 발생했었다. 


이유는 git 통신이 https를 사용하는 경우 SSL 인증을 하기 위해 사용하는 gnutls 패키지 때문이었는데, 해결하기가 만만치 않다. 


구글링 중 git 설치시 gnutls 대신 openssl 을 사용하도록 compile을 해서 설치하라는 팁이 있어서 공유한다. 


* 아래는 ubuntu 기준이다. 


root@~~# apt-get install build-essential fakeroot dpkg-dev

root@~~# mkdir ~/git-openssl

root@~~# cd ~/git-openssl

root@~~# apt-get source git

root@~~# apt-get build-dep git

root@~~# apt-get install libcurl4-openssl-dev

root@~~# dpkg-source -x git_1.9.1-1ubuntu0.3.dsc

root@~~# cd git-1.9.1

root@~~# vim debian/control


Build dependency 설정에 libcurl4-gnutls-dev 를 libcurl4-openssl-dev 로 수정한다. 


...... (중략)


Build-Depends: libz-dev, libpcre3-dev, gettext,

 libcurl4-openssl-dev, libexpat1-dev,


.... (중략)


그리고 패키지를 빌드 한다. 


root@~~# sudo dpkg-buildpackage -rfakeroot -b


빌드된 패키지를 install 하자. 


root@~~# dpkg -i ../git_1.9.1-1ubuntu0.3_amd64.deb


끝-




[참고]

  • http://docs.aws.amazon.com/codecommit/latest/userguide/troubleshooting.html#troubleshooting-ge4
  • http://askubuntu.com/questions/186847/error-gnutls-handshake-failed-when-connecting-to-https-servers


'IT > ETC' 카테고리의 다른 글

패리티 비트 (Parity bit)  (0) 2015.06.23
Comments