tmkimm
Eddy
tmkimm
전체 방문자
오늘
어제
  • 분류 전체보기 (34)
    • DataBase (3)
    • Javascript (0)
    • Node.js (7)
    • Java (2)
    • Spring (3)
    • 기타 (13)
    • 사이드프로젝트 (2)
    • 생각 정리 (2)
    • 좋은글 공유 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • 에러트래킹
    • API 문서 자동화
    • Node.js
    • mybatis
    • 생각정리
    • 부하테스트
    • 삽질기록
    • github
    • SSL
    • spring
    • 모니터링
    • 논쟁
    • 사이드프로젝트
    • swagger
    • 설계
    • docker
    • Java
    • Sentry
    • Git

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    tmkimm

    Eddy

    SVN checkout시  SSL 에러 해결방법(CentOS)
    기타

    SVN checkout시 SSL 에러 해결방법(CentOS)

    2021. 11. 5. 01:28

    CentOS 8에 SVN을 세팅하고 Checkout 도중 SSL 오류가 발생하여 6시간 삽질을 통해 해결한 내용을 공유하려 합니다.

    관련된 글이 잘 나오지 않아서, 이 글을 읽고 도움이 되는 분이 있으면 좋겠습니다. 🙏

     

    SVN 설치

    우선 SVN을 설치하고 checkout 받은 과정은 아래와 같습니다.

    yum list installed subversion // svn 설치 확인
    yum list subversion // 설치 가능 목록 확인
    yum install subversion.x86_64 // svn 설치
    
    mkdir /svn/repo
    cd /svn/repo
    svn checkout svn주소 --username="유저명" --password="암호"

    디렉터리를 생성하고 checkout이 무난하게 될 거라고 생각했지만.. 에러가 발생했습니다.

    svn: E170013: Unable to connect to a repository at URL

    Subversion error: svn: E120171: Error running context: An error occurred during SSL communication 


    해결 방법 1. TLS 최소 버전 낮추기

    참조 글

    E120171 에러를 구글링을 해보니 OS에서 지원하는 TLS 최소 버전이 SVN 서버에서 사용하는 버전보다 높기 때문에 오류가 발생할 수 있다고 합니다. 사용하는 SVN 서버가 오래되었다고 알고 있었기 때문에 그럴 수 있을 것 같다고 생각해 TLS 최소 버전을 낮춰보았습니다.

     

     

    시스템의 파일 위치를 찾고 변경 전 백업 파일 생성하기

    "openssl version -d"

    // 파일 맨 위에 추가
    openssl_conf = default_conf
    
    // 파일 끝에 추가
    [ default_conf ]
    ssl_conf = ssl_sect
    [ssl_sect]
    system_default = ssl_default_sect
    [ssl_default_sect]
    MinProtocol = TLSv1
    CipherString = DEFAULT:@SECLEVEL=1

    해결 방법 2.  SVN checkout 시 잘못된 인증서 허용 옵션

    svn 문서

    참조 글

    웹에서 SVN 주소로 접근해보니 접속은 되지만 HTTPS 연결이 정상적으로 되지 않고 있었습니다.

    Checkout 받을때 신뢰하지 않는 SSL 서버 인증서도 허용하는 옵션이 있습니다.

    —non-interactive를 붙여줘야만 —trust-server-cert 옵션을 사용할 수 있습니다.

    특정 원인만 허용하고 싶다면 trust-server-cert-failures 옵션으로도 사용할 수 있습니다.

    --username과 --password는 함께 입력해야 합니다.

    svn checkout --non-interactive --trust-server-cert
    svn checkout--non-interactive trust-server-cert-failures="unknown-ca,cn-mismatch,expired,not-yet-valid,other"

     


    해결 방법 3. CentOS 암호화 정책을 Legacy로 설정

    참조 글

    저는 이 단계에서 문제가 해결됐습니다.

    CentOS 암호화 정책을 Legacy로 설정하는 옵션이 있었는데 TLS 1.0 or TLS 1.1을 허용하게 됩니다.

    update-crypto-policies --set LEGACY

     


     

    해결 방법 1번과 3번은 보안 수준을 낮추는 것이다 보니 조심해서 사용하시는 게 좋을 것 같습니다.

     

    저작자표시 (새창열림)

    '기타' 카테고리의 다른 글

    [Docker] Docker 호스트에 원격으로 배포하기(docker compose 이용)  (1) 2021.12.18
    [MacBook]맥북에게 5000번 포트를 빼앗겼을때 - error: bind EADDRINUSE null:5000 에러 해결  (8) 2021.12.18
    REST API란, RESTful API 설계 가이드  (0) 2021.01.20
    [JWT] 서버 인증 이해하기 - JWT란, 서버 인증 / 토큰 인증  (1) 2020.10.07
    [Git] 깃허브란? Github 시작하기 - 1  (0) 2020.06.18
      '기타' 카테고리의 다른 글
      • [Docker] Docker 호스트에 원격으로 배포하기(docker compose 이용)
      • [MacBook]맥북에게 5000번 포트를 빼앗겼을때 - error: bind EADDRINUSE null:5000 에러 해결
      • REST API란, RESTful API 설계 가이드
      • [JWT] 서버 인증 이해하기 - JWT란, 서버 인증 / 토큰 인증
      tmkimm
      tmkimm
      ⭐️

      티스토리툴바