Systems/Unix2012.05.24 17:23

SSL handshake failed: SSL error: Key usage violation in certificate has been detected


프로젝트 관리를 위한 서버에 VisualSVN 최신버전을 설치하고 Centos에서 svn co (checkout)을 돌렸더니 이런 오류가 발생한다. 자격증명서(certificate)에서 Key 사용에 관한 오류가 발생하여서 SSL 핸드셰이크(handshake)를 할 수 없다는 것. 


인터넷을 뒤져 이 문제가 libneon과 GnuTLS 등등에 있다는 것 까지는 알아냈는데, Centos에는 관련된 라이브러리가 설치되어 있지 않은 것처럼 보이는데도 문제가 생겨서 해결이 난감.


그래서 또다른 우회책을 찾았으니...


일단 VisualSVN 서버가 깔린 기계에서 regedit을 돌린다. 그리고 다음의 필드 추가.




즉, CreateGnuTLSCompatibleCertificate를 DWORD 타입으로 추가해서, 그 값을 1로 설정하는 것.


이렇게 한 다음에 이제 VisualSVN 서버에서 개인 자격 증명을 추가하면 되는데... 절차는 이렇다. 우선 VisualSVN 서버 관리자 화면의 왼쪽 Pane에서 최상위 노드를 클릭한 다음, 마우스 오른쪽 버튼을 누르고 Properties를 선택한다. 




그런 다음에 뜨는 창에서 Certificate를 선택하고, Change certificate를 누른다. 그리고 개인 자격 증명을 생성한다. 




이렇게 하고 Centos 쪽에서 Checkout을 실행해 보면, 다음과 같은 화면이 뜬다. 



지운 부분은 보시면 안되는 부분이니까 궁금해하지 마시고.. (수줍) 


아무튼 P를 선택하고 영구 승인을 한 다음에, 그냥 쓰면 된다. 개인 인증서라는게 껄쩍지근한 분들은 다른 해결책을 인터넷에서 찾아보시기 바라고.. ㅋㅋ


64비트 윈도우즈에서는 Registry 편집을 좀 달리해 주어야 할 수 있는데, 거기에 관해서는 아래의 링크를 참고하시기 바란다. 


http://www.visualsvn.com/support/topic/00056/



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 잘보고갑니다^^ 몰랐던 정보네요~

    2012.05.25 21:56 신고 [ ADDR : EDIT/ DEL : REPLY ]

Languages/Java2008.07.16 16:46

SVN에 등록된 Maven 프로젝트를 checkout 받아서 빌드하는 과정은 아주 단순하다.

우선 다음과 같이 프로젝트를 checkout 한다.

svn co http://..../svn/pe/testapp testapp

이전 글과 마찬가지로, 붉은색으로 표시된 부분은 자신의 환경에 맞추어 바꾸면 된다.

co는 checkout의 약자이고, 그 뒤에 나오는것은 project의 URL이며, (이를 위해서 Apache에 SVN 서버가 통합되어 있어야 한다. 그 통합 방법은 이전 글에서 다룬 바 있다.) testapp는 checkout 받은 소스가 들어갈 디렉터리 이름이다.

이렇게 하면 testapp 디렉터리 안에 소스코드들이 쫙 깔린다.

이 디렉터리로 가서

mvn compile

위와 같이 하면 코드가 컴파일된다. 다음은 실행 결과이다.

bjlee@bjlee-ubuntu804:~/work/maven/testapp$ mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building testapp
[INFO]    task-segment: [compile]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Wed Jul 16 16:44:00 KST 2008
[INFO] Final Memory: 2M/6M
[INFO] ------------------------------------------------------------------------

테스트를 실행하는 방법은 다음과 같다.

mvn test

위와 같이 하면 테스트가 실행된다. 다음은 실행 결과이다.

bjlee@bjlee-ubuntu804:~/work/maven/testapp$ mvn test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building testapp
[INFO]    task-segment: [test]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [surefire:test]
[INFO] Surefire report directory: /home/bjlee/work/maven/testapp/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running re.etri.moncp.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.042 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Wed Jul 16 16:44:51 KST 2008
[INFO] Final Memory: 4M/8M
[INFO] ------------------------------------------------------------------------


이제 테스트 결과 fail된 테스트가 발견되었을 시, 그에 대한 issue를 Trac에 자동 등록하도록 하는 부분을 구성해야 한다. 그 부분이 가장 어렵다.

<self-question>
지금 생각으로서는 Maven 플러그인을 구현하면 좋을것 같기도 한데, 그 방법이 워낙 까다로와서 엄두가 나질 않는다. 하지만 시도해 볼 만한 가치는 있을 듯... (아니면 google 검색을 잘 하면 나올지도 *쿨럭*)
</self-question>

신고
Posted by 이병준

소중한 의견, 감사합니다. ^^