반응형

mysql 도 설치 했으니 

오늘은 web 서버 세팅까지 알아보도록 합시다!

 

reverse proxy (역방향 프록시)

보통 apache 와 nginx가 사용 된다

 

기본 개념

외부 인터넷에서 내부(서버) 망으로 들어오는 요청을 , 중간 프록시 서버가 중계하는 방식

 

브라우저에서 http request 를 nginx 가 먼저 받아서 처리

  nginx 처리할 수 있는 요청은 nginx가 처리하고 (정적파일 이미지나 html)

  Java 서버 애플리케이션은 url 요청은 tomcat에게 전달한다. 

 

기본 역활

load balancing, http cache, https

 

nginx 설치 

sudo apt install nginx

 

nginx 설정

tomcat으로 request forwarding 하기 위한 설정 파일 생성

 

 

sudo vi /etc/nginx/sites-available/tomcat.conf

 

파일에 입력

 

upstream tomcat {

        server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;

}

 

server {

        listen 80;

        server_name www.test.org;

 

        location / {

                proxy_set_header X-Forwarded-Host $host;

                proxy_set_header X-Forwarded-Server $host;

                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                proxy_pass http://tomcat/;

        }

}

요청 URL 에서 hostname 이 www.test.org  이면  nginx 에서 처리해서 tomcat 으로 보냄

 

중계 설정 파일 활성화

 

sudo ln -s /etc/nginx/sites-available/tomcat.conf /etc/nginx/sites-enabled/

 

nginx  재시작

 

sudo service nginx restart

 

tomcat 설치 

sudo apt install tomcat9

https 설정

https 프로토콜 통신에는 SSL 인증서가 필요하다. (SSL certificate)

인증서 무료로 발급해 주는 비영리 기관이 있다.

 

https://letsencrypt.org/ko/

 

Let's Encrypt - 무료 SSL/TLS 인증서

 

letsencrypt.org

 

Let's encrypt 기관이 제공하는 certbot (certification robot) 데몬을 이용하면

인증서 발급, 인증서 설치, 인증서 갱신이 모두 자동으로 처리된다

SSL 인증서는 90 일 마다 갱신되어야 한다.

이 갱신 작업도 certbot에 의해 자동으로 처리된다.

certbot 설치

sudo apt install certbot python3-certbot-nginx

 

https://설정한 도메인 설정

 

sudo certbot --nginx -d www.test.org  

 

위 명령은, 암호화된 https 프로토콜로만 설정 도메인을 접근할 수 있도록 설정 !!

https:// 설정한 도메인으로 접속 성공 !! 

 

오늘 작업 완료 !!

 

다음에는 직접 만든 스프링 게시판을 오라클 클라우드에 돌려보는걸로 다가 

반응형
반응형


ssl 인증서 

클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장한다
SSL 통신에 사용할 공개카를 클라이언트에게 제공한다.

서버 인증기관(CA Certificate authority)
클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할
 해당기관
 Symantec( veriSign) 42% 점유

 사설 인증기관

 SSL 인증서의 내용
    1. 서비스의 정보(서비스의 도메인/ 인증서를 발급한 CA)
    2. 서버 측 공개키 ( 공개키의 내용, 공개키의 암호화 방법)

    웹브라우저가 웹서버에 접속하면  인증서를 제공한다
    브라우저는 인증서를 발급한 CA가 자신이 내장한 CA의 리스트에 있는지 확인한다.
    포함되어 있다면
    CA 공개키를 이용해서 인증서를 복호화 한다

SSL 동작방법
    악수(handShake) > 전송 > 세션종료
    1.악수
    우선 인사를 한다
    클라인언트가 서버에 접속을 한다  
        client Hello 
        클라이언트 측에서 생성한 랜덤 데이터 전송
        클라이언트가 지원하는 암호화 방식들 서버에게 전달
    서버는 client hello  응답한다.
        서버측에서 생성한 랜덤 데이터 전송
        서버가 선택한 클라이언트 암호화 방식 결정( 클라이언트가 보내온 것 중 최적 선택)
        그 후 인증서 전송
    클라이언트는 서버의 인증서가 CA에 의해서 발급된 것 인지를 확인한다.(브라우저 내장)
        인증서 안에는 서버의 공개키를 전달/ 그리고 쌍을 이루는 비공개키를 생성해서 저장해둠

    똑같은 세션키를 같게 됨

    악수 단계 종료     

    세션
    예) 아이디 / 암호 같은 저장 정보를 세션에 담아두고 있다가 상대방에게 전송 전 session key 값을 이용해서 대칭키 방식으로 암호화한다.

    세션 종료 
    SSL 통신 종료
    session key 폐기

 

조금 요약을 해보면

클라이언트(브라우저) 와 서버는 같은 키를 주고받는다.

CA 인증은 결국 특정 서버가 또 있다(브라우저 내장)

주고받는 순간 통신은 세션 키 생성

인증 통신이 끌 나면 세션 키 제거

 

맞나 모르겠다 복잡스러 ~ 
   

반응형
반응형



https 통신에서 오류가 발생하여


사내에서 지급한 인증서를 설치하였다.


인증기간이 지난걸 삭제 할려해도 도저히 방법을 모르겠어서 


폭풍검색


시작 > 실행 mmc


파일 > 스냅인 추가 / 제거


인증서 선택 후 확인


인증서 현황이 보인다 ㅠㅠ  여기서 오른쪽 클릭 후 삭제


지금 캡처파일은 올릴수 없는데 집에가서 올려야 것다    

반응형

+ Recent posts