250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

http 백엔드와 https 프론트 서버 통신에 대한 고민 본문

[Snow-ball]프로그래밍(컴퓨터)/여러가지

http 백엔드와 https 프론트 서버 통신에 대한 고민

Snow-ball 2023. 11. 22. 21:12
반응형

프로젝트 셋팅 현황

1. 백엔드는 Window에서 노드를 사용하였고, 포트포워딩으로 통신이 가능하게 열어두었다. (HTTP)

2. 프론트엔드는 버셀을 사용하였고, 현재 올라가있는 상태이다. (HTTPS)

 

 

HTTP 백엔드 서버와 HTTPS 프론트엔드 서버 간의 통신을 하기 위해서는 SSL/TLS 를 사용하면 제일 간단한 방법이 있다.

하지만, 다른 방법들로 해보고 싶어서 적용해보는 중이다.

 

일단 대안은 7가지 정도가 될 것이다.

(1) Let's Encrypt: 무료 SSL/TLS 인증서를 제공하는 비영리 인증 기관이다. 이를 사용하여 HTTPS 연결을 위한 인증서를 발급 받을 수 있다.

(2) Cloudflare: Cloudflare와 같은 CDN 및 보안 서비스 제공업체를 사용하면, 자동으로 SSL/TLS 보호를 적용할 수 있다. Cloudflare는 무료 플랜에서도 암호화를 제공한다.

(3)자체 서명된 인증서(Self-Signed Certificates): 직접 SSL/TLS 인증서를 생성하여 사용할 수 있다. 이 방법은 주로 개발 및 테스트 환경에서 사용된다. 실제 프로덕션 환경에서는 브라우저가 경고를 표시할 수 있으므로 권장되지 않는다.

(4) VPN 터널: 백엔드와 프론트엔드 간의 통신을 VPN 터널을 통해 이루어지게 함으로써, 암호화된 통신을 구현할 수 있다.

(5) SSH 터널링: SSH 터널을 설정하여, 백엔드와 프론트엔드 간의 통신을 암호화할 수 있다.

(6) 사설 네트워크: 백엔드와 프론트엔드가 동일한 사설 네트워크 내에 있을 경우, 네트워크 자체를 보호하여 외부로부터의 접근을 차단할 수 있다.

(7) 애플리케이션 레벨 암호화: 통신하는 데이터 자체를 애플리케이션 레벨에서 암호화하여 보내는 방법이다. 예를 들어, 메시지를 본문을 암호화하고, 백엔드에서 그것을 복호화하는 방식이다.

 

 

중요한점!

보안의 가장 중요한 원칙 중 하나는 "방어의 깊이(depth of defense)"이다. 가능한 여러 보안 레이어를 적용하여, 만약 하나가 실패하더라도 다른 방법으로 보호할 수 있도록 하는 것이 중요하다. SSL/TLS 인증서 구입이 최선의 선택이 아닐 경우, 위의 방법들을 적절히 조합하여 사용하자!

 

 

내가 우선적으로 선택하는것은 VPN(가상 사설망)을 사용하는 방식이다.

통신하기 위한 간단하게 설정해야하는 단계는

1단계: VPN 서버 설정

2단계: VPN 클라이언트 구성

3단계: 프론트엔드와 백엔드 연결

4단계: 방화벽 규칙 설정

일 것이다.

 

 

Window에서 VPN 추가를 사용하였다. VPN 연결에는 다양한 프로토콜이 존재한다.

PPTP, L2TP/IPsec, L2TP/IPsec 및 인증서, L2TP/IPsec 및 미리 공유한 키, SSTP가 있지만, 나는 일단 PPTP(Point-to-Point Tunneling Protocol)을 사용하기로 했다.

 

 

하지만, 현재 window vpn을 추가해서 연결을 시도했지만, [ 컴퓨터와 VPN 서버 간의 네트워크 연결이 중단되었습니다. VPN 전송 문제가 원인일 수 있으며, 일반적으로 인터넷 대기 시간이나 단순한 VPN 서버 용량 초과 때문입니다. VPN 서버를 다시 연결해 보십시오. 문제가 지속되면 VPN 관리자에게 문의하거나 네트워크 연결 품질을 분석하십시오 ] 가 되면서 안되고 있다. 

 

이후에 고민 후 적용한 사례에 대해서 적어보겠다

 

 

 

 

반응형
Comments