반응형

CentOS 6.5 버전에서 확인된 사항입니다. Ubuntu와 같은 다른 리눅스에서는 보증하지 않습니다.


안녕하세요. 이번에는 리눅스 관련 오류 해결방법에 관해 다뤄볼까 합니다.


현업에서 일하든 대학교 프로젝트를 하든 SVN(Subversion)은 굉장히 많이 사용합니다. 상당히 유용하기도 하구요. 하지만 리눅스에서는 조금 다루기가 어려운데요.


svn: OPTIONS of 'https://xxx.xxx.x.xxx:xxxx/svn/trunk': SSL handshake failed: SSL error: Key usage violation in certificate has been detected. (https://xxx.xxx.x.xxx:xxxx) 라는 오류가 뜨는 경우가 있습니다.


관련 자료 찾아봤더니 정보도 많이 없고 대부분 영어라서 해석하면서 보려니 머리가 아프더라구요. 결국 방법은 찾았습니다.


방법은 두가지 입니다.


1. SVN 서버에 들어가 '개인 인증서' 하나를 추가로 신설해 클라이언트에서 접속이 가능하게 한다


2. SVN 클라이언트 버전을 1.6.11 이상으로 업데이트 한다.



1번의 경우 가장 확실하고 클라이언트 버전을 그대로 유지할수 있다는 장점이 있지만 서버 컴퓨터에서 직접 조작을 해야 하고, 그럴 일은 없겠지만 혹시나 잘못돼서 서버 자체가 문제가 생기면 복구 수준으로 끝나지 않을지도 모릅니다. 저 같은 경우도 1번을 먼저 시도하려고 했다가 서버 관리자가 서버는 왠만해서 건드리지 말라고 부탁을 하여 1번 방법은 포기하였습니다.


1번 방법을 포스팅한 블로거 분들이 몇 분 계시므로 방법을 찾으시기 바랍니다.



2번 같은 경우에는 기존의 SVN을 지우고 새로 SVN을 다시 깔아야 하는 귀찮음이 존재합니다. 하지만 굳이 서버에 접근하지 않아도 되고 클라이언트(로컬 PC) 수준에서 끝낼수 있기 때문에 훨씬 안전합니다.


따라서 저같은 경우는 2번을 했는데요.


CentOS 6에서 그냥 yum install subversion 이라 명령어를 입력해서 설치를 하게되면 자연스럽게 1.6.11 버전이 설치가 됩니다. CentOS 7에서는 시도하지 않아서 어떤 버전이 깔릴지는 알수가 없습니다.


이러한 오류가 발생하는 이유는 인증서 방식이 서로 다르기 때문입니다.


윈도우는 대체로 OpenSSL을 사용하기 때문에 별 문제가 없으니 리눅스의 경우 SVN이 1.6.11 이하 버전이면 OpenSSL이 아니라 GnuTLS 방식을 사용하게 됩니다. 서로 호환이 되지 않아 발생하는 문제이기 때문에 대충 통과시켜 주거나 아니면 인증서 방식을 호환시키는 방법으로 해결해야 하죠.


다행히도 1.6.15 버전 이상부터는 리눅스 SVN도 OpenSSL을 지원하기 때문에 이러한 문제는 더이상 발생하지 않습니다. 극도의 호환성을 맞추기 위해서(예를 들어 고객사 서버와 환경을 동일하게 맞춰야 한다던가) 하는 경우가 아니라면 왠만해서 SVN을 최신버전으로 유지시켜주시기 바랍니다.


다만 리눅스에서 1.6.11 이상 버전을 설치하기 위해서는 단순한 명령어 한줄로 끝나지 않고 따로 외부에 접속을 해서 파일을 받아온다음 일일이 설치해줘야 하는 불편함이 따르니 그에 관련된 자료를 검색하셔서 적용하시기 바랍니다.


대체로 '리눅스 SVN 1.7' 이라던가 '리눅스 SVN 1.8' 과 같이 검색을 하면 친절하고 다양한 정보들이 많습니다.


리눅스 SVN과 관련해서 저런 오류가 뜬다면 버전이 안맞는 경우가 거의 100% 이니 이 방법을 적용해보시기 바랍니다.


이것으로 포스팅 마치겠습니다.



+ Recent posts