본문 바로가기
NCloud(NCP)

SSL VPN 접속 후 Proxy Server를 이용한 Source Commit Private URL 접근하기

by 간식주인 2025. 2. 12.

Naver Cloud Platform(NCP)에서 제공하는 코드 레파지토리 서비스인 Source Commit에는 두 개의 Endpoint가 제공됩니다. 하나는 Public Endpoint로 외부에서도 접근이 가능하며, 다른 하나는 Private Endpoint로 NCP 내부의 네트워크에서만 접근할 수 있습니다.

하지만, 외부 네트워크에서 Private Endpoint를 사용하고자 할 때는 별도의 프록시 서버 설정이 필요합니다. 이번 포스팅에서는 NCP의 Ubuntu 서버에 Apache2를 설치하여 프록시 서버를 구성하고, SSL VPN을 통해 외부에서도 Source Commit의 Private Endpoint에 접근하는 방법을 소개하겠습니다.

 

요건

- SSL VPN에 접속하여 공인망을 통하지 않고 NCP의 Proxy Server를 거쳐 Source Commit 서비스의 Private URL에 접근

 

환경

  • Ubuntu 20.04 (apache2 설치 필요)
  • SSL VPN
  • Source Commit

프로세스

  1. 환경준비
  2. ubuntu 20.04 서버에 apache2 설치
  3. apache2를 이용하여 프록시 서버 설정
  4. SSL VPN 접속 이후 서버의 사설 IP를 이용해 Source Commit의 Private Endpoint로 접근

 

 

1. 환경준비

먼저 NCP에서 필요한 서비스들을 생성하여 환경을 준비합니다.

[NCP Server 생성]

*SSL VPN을 통해 Proxy 서버를 경유하므로 별도로 공인아이피는 신청하지 않습니다.

 

[SSL VPN 서비스 생성]

*SSL VPN은 Proxy Server가 위치한 VPC에 배치합니다.

 

[Source Commit 생성]

 

Source Commit 서비스 생성 이후 로그인을 위해 GIT 계정 설정을 진행합니다.

 

 

 

2. ubuntu 20.04 서버에 apache2 설치

생성한 Proxy Server에 접속한 후, Apache2를 설치합니다.

sudo apt update
sudo apt install apache2 -y

 

설치 이후 SSL VPN에 접속한 상태에서 서버의 private ip를 입력하여 apache2 홈페이지를 확인할 수 있습니다.

 

3. apache2를 이용하여 프록시 서버 설정

Apache2 설치 이후 프록시 설정을 위해 모듈을 활성화합니다.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod ssl
sudo systemctl restart apache2

 

 

프록시 설정 파일을 수정합니다.

sudo vi /etc/apache2/sites-enabled/000-default.conf

 

 

프록시 설정 파일을 수정합니다. 아래와 같이 설정합니다.

sudo vi /etc/apache2/sites-enabled/000-default.conf
========================================================
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html    
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined    
    ProxyRequests Off
    ProxyPreserveHost On
    SSLProxyEngine On    # 프록시 설정
    <Proxy *>
        Require all granted
    </Proxy>    # /sc 경로를 HTTPS로 프록시
    ProxyPass /sc  https://dv0elpff.devtools.ncloud.com/2633384/testt.git
    ProxyPassReverse /sc  https://dv0elpff.devtools.ncloud.com/2633384/testt.git    
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
</VirtualHost>

*ProxyPass에는 Source Commit의 Private URL을 입력합니다.

프록시 설정 설명

이 프록시 설정은 사용자의 요청을 Source Commit의 Private Endpoint로 안전하게 전달하는 역할을 합니다.

  1. ProxyRequests Off: Apache가 오픈 프록시가 되는 것을 방지합니다.
  2. ProxyPreserveHost On: 클라이언트가 요청한 원래 호스트명을 유지하도록 설정하여, 백엔드 서버가 올바른 호스트 정보를 인식할 수 있도록 합니다.
  3. SSLProxyEngine On: Apache가 HTTPS 트래픽을 프록시할 수 있도록 활성화합니다.
  4. ProxyPass 및 ProxyPassReverse: /sc 경로로 들어오는 요청을 Source Commit의 Private Endpoint로 프록시합니다.
  5. SSL 인증 검증 비활성화:
    • SSLProxyVerify none: 백엔드 서버의 SSL 인증서를 검증하지 않도록 합니다.
    • SSLProxyCheckPeerCN off, SSLProxyCheckPeerName off, SSLProxyCheckPeerExpire off: 사설 인증서나 내부 네트워크 환경에서 발생할 수 있는 인증서 불일치 문제를 방지합니다.

TLS 핸드셰이크 문제 해결

SSL VPN을 통해 사용자가 Private Endpoint에 접근할 때, 다음과 같은 네트워크 흐름이 발생합니다:

  1. 사용자의 PC → 프록시 서버 (HTTP)
  2. 프록시 서버 → Source Commit Private Endpoint (HTTPS)

이 과정에서 프로토콜이 다르기 때문에 TLS 핸드셰이크 문제가 발생할 수 있습니다. 이를 해결하기 위해 SSLProxyEngine On을 활성화하고, SSL 인증 검증을 비활성화하여 프록시 서버가 백엔드 서버와 정상적으로 통신할 수 있도록 구성했습니다.

 

설정 완료 후 Apache2를 재시작합니다.

sudo systemctl restart apache2

 

4. SSL VPN 접속 및 Private Endpoint 접근

외부 PC에서 SSL VPN에 접속합니다. 이후, 프록시 서버의 Private IP를 이용하여 Source Commit 서비스의 Private Endpoint에 접근합니다.

git clone http://{프록시서버의 Private IP}/sc

*Source Commit에서 설정한 GIT 계정 아이디/비밀번호 입력

 

git clone 이후 Source Commit의 내용이 로컬PC로 클로닝 된 것을 확인할 수 있습니다.

 

결론

이번 포스팅에서는 NCP에서 Source Commit의 Private Endpoint에 외부에서 접근할 수 있도록 Apache2를 이용한 프록시 서버 설정 방법을 알아보았습니다. SSL VPN과 프록시 설정을 통해 네트워크 보안을 유지하면서 효율적으로 소스 코드를 관리할 수 있습니다.