728x90

 

홉 하우스 라거 13

이름 : 홉 하우스 라거 13(Hop House lager 13)

제조사 : 더 브루어스 프로젝트

제조국 : 아일랜드

도수 : 5%

용량 : 500mm

종류 : 라거(Lager)

구입처 : 편의점 

가격 : 4000원

색깔이 진하고 톡쏘는 느낌이있고 쌉싸름한 맛이 매우강함

★★★☆☆

728x90
728x90

HTTPS 는 (HyperText Transfer Protocol over Secure Socket Layer) 로써

HTTP의 보안이 강화된 버전이다.

 

HTTPS는 통신의 인증과 암호화를 위해 넷스케이프 커뮤니에션즈 코퍼레이션이 개발했고, 전자상거래에서 널리쓰인다.

 

HTTPS는 소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS프로토콜을 통해 세션 데이터를 암호화 한다.

 

( HTTP의 기본포트는 80 HTTPS의 기본포트는 443이다. )

ㄴ 최근 스프링부트 프로젝트를 개발진행하면서 HTTPS를 적용시킬려는과정에서 HTTP의 포트를 8080 , HTTPS의 포트가 8443 인 상태에서 JAR파일을 개인서버인 라즈베리파이에 배포한적이있는데 기본포트가아닌 다른 포트를 사용할 경우 URL에 포트를 명시해주어야만 한다. 

 

즉, 80포트나 443포트를 사용하는게 아니라면 www.examplce.com:8443/$request_uri 처럼 포트번호를 url 뒤에 명시해줘야하는것이다.

 

HTTP는 TCP를 기반으로 하는 프로토콜이고 SSL과 TLS(SSL 강화버전) 이라는 프로토콜을 사용하여 데이터를 암호화한다.

 

암호화 알고리즘(Cipher[암호] Suite[모음])

 

1. SSL Handshake는 암호화 알고리즘 결정과 대칭키(비밀키) 전달을 위해 사용한다.

2. SSL Handshake.의 첫단계, Client가 'Client Hello'로 협상을 시작할 때 자신이 사용 가능한 'Cipher Suite'를 쭉 나열한다.

3. Server가 'Server Hello'를 통해 자신이 고른 'Cipher Suite'를 전달한다.

 

출처: https://aws-hyoh.tistory.com/47

SSL HandShake를 통해서 결국 이루고자 하는것은 (대칭키(비밀키)를 서버에게 전달하기위한 방법(알고리즘) 선택을 의미.

 

인증서 검증은 인증기관인 CA가 한다.

 

CA는 2계층 혹은 3계층의 구조를 형태를 뛰고있음(보안때문에)

 

1. Root CA(최상위 기관)

2. Intermediate CA (중간기관)

 

SSL 인증서 생성하는 순서

1. 서버의 각종정보  공개키를 Intermediate CA에 제출

2. 줄여서 ICA라고하겠음 ICA는 자신의 개인키로 암호화

3. ICA -> RCA(ROOT CA)에 자신의 공개키와 아까 정보들을 제출

4. RCA가 받은 정보들을 다시 암호화(서명) 

 

브라우저는 (주요인증기관의 리스트와 공개키를 이미 보유중)

 

서버의 개인키를 해커에게 탈취당하면 (해독된 대칭키)를 통해 그동안 저장해온 모든 패킷을 복호화할수있다고함)

현재의 데이터 뿐만 아니라 과거의 데이터 모두를 탈취당한다.

(개인키 관리를 잘해야함)

 

개인 스프링프로젝트에 HTTPS를 구현하게되면서 관련 지식을 공부하게되었다..

 

너무 딮하게는 공부하지않았지만 대충 돌아가는 흐름에대한 이해가 되었다.

 

 

728x90

'네트워크' 카테고리의 다른 글

표준 입력,출력,에러 / 파일 디스크립터  (0) 2022.02.25
[쉘 스크립트] 특수 문자  (0) 2022.02.23
프록시  (0) 2022.02.22
SSL / TLS protocol and Cipher suite  (0) 2022.02.18
728x90

SSL / TLS (Secure Socket Layer, Transport Layer Security)

1. 단말과 단말간의 암호화 통신을 위한 프로토콜

 

SSL Handshake

1. Client Hello - Client가 서버에게 자신이 사용가능한 Random byte(대칭키 생성에 사용), Session ID, SSL , TLS 버전이 포함된 Cipher suite list를 전달한다.

 

2. Server Hello - Server가 Client가 보낸 Cipher suite list 중 하나를 선택해 전달

 

3. Cleint Key Exchange - 키교환 실시 ( 실제 데이터 암호화에 사용할 키를 전달하며, SSL 인증서에서 추출된 공개키로 암호화 )

 

4. Server certificate - 서버의 인증서를 클라이언트에게 전송

 

5. Server hello done - 서버 전달 종료

 

6. Change cipher Spaces, Finished - 이후 보내는 메세지들은 협상된 암호화 알고리즘에 따라 보낼것을 통보

 

7. Finshed, Change cipher Specs - 클라이언트가 보낸 메시지를 확인한 후, handshake를 종료하고 하나의 대칭키로 통신한다고 통보

 

 

Cipher Suite

1. 암호화 세팅이다.

 

2. (암호화 프로토콜) - 키 교환 방식 - 인증서 검증 - WITH - 암호화 알고리즘(Cipher) - 메시지 인증방식

 

3. (공개키) 키교환 방식

 

4. 인증 방식

1. cleint는 받은 서버의 인증서가 신뢰할 수 있는지 검토 후 공개키를 추출한다.

 

2. 먼저 서명자는 문서의 데이터 일부를 해시 함수를 이용해 해시값을 생성하고 , 이를 개인키로암호화한뒤 문서에 첨부함

 

3. client는 이 인증서를 공개키로 복호화 한 뒤, 개인키로 암호화된 해시 값 역시 공개키로 복호화

 

4. 인증서 내부 데이터를 같은 해시 함수를 이용해 해시 값을 얻어냄

   이 2가지를 비교하여 인증서 검증

 

MAC

 

1. 무결성 확인용 인증방식

 

2. 메시지 데이터 일부를 MAC 알고리즘으로 변환하여 메시지에 첨부한 후 수신자가 똑같은 방식으로 변환 일치 여부 검사

https://aws-hyoh.tistory.com/11

728x90

'네트워크' 카테고리의 다른 글

표준 입력,출력,에러 / 파일 디스크립터  (0) 2022.02.25
[쉘 스크립트] 특수 문자  (0) 2022.02.23
프록시  (0) 2022.02.22
HTTPS 통신에대한 생각정리  (0) 2022.02.21
728x90

연습문제 1. grade.sh [if문 활용]

 

학생의 시험 성적을 입력 받아서 학점을 계산하는 스크립트를 작성하세요.

 

학점은 점수가

96~100 : A+

90~95 : A- 

86~89 : B+

80~85 : B-

76~79 : C+

70~75 : C-

66~69 : D

나머지는 F로 계산

그리고 100점이 넘는 점수는 So Big 메시지를 출력,

1점보다 적은 값이 들어오면 So small 이라는 메시지를 출력하고 스크립트를 종료하게 작성하시오.

 

[if문 활용]

[case 문 활용]

 

 

[while문 활용]

 

[for문 활용]

 

728x90
728x90

 

테스트할 api 주소

https://api.openweathermap.org/data/2.5/weather?q=Bangalore&APPID=API KEY를 기입해주세요

b5227eb415d8925187dc818bdeba0098

1. Test Plan 우클릭 - [Thread] - [Thread Group]

2. Thread Group 우클릭 - [Add] - [ Sampler] - [Http Request]

3. Http Request 우클릭 - Listener - [View Results Tree]

 

1 ) 테스트할 다음과 같이 카테고리를 세팅해줍니다.

2) rest 형식으로 테스트할때 ServerName or Ip에 테스트할 API에 도메인명을 기입하고

HTTP Request 탭에서 Path 형식과 파라미터 형식을 설정합니다.

3) Thread Group에서

Number of Thread (쓰레드 수)

Ramp-up period : 5로 값 설정지 쓰레드수가 10개라고 가정할때 5초동안 쓰레드수를 점진적으로 상승시킴

Loop Count : 1쓰레드당 반복할 횟수

Thread Group탭의 값과 HTTP Request값의 기입이 끝났다면

4) 실행버튼을 누릅니다.

테스트 결과가 나오게됩니다.

728x90

'Java > jmeter' 카테고리의 다른 글

Jmeter 사용법  (0) 2022.02.10
728x90

[ 리스트 커넥션 알고리즘 ]

 

upstream backend {

    least_conn; // 지시자

    server backend.example.com;

    server backend1.example.com;

}

 

연결이 적은 서버를 먼저 활용하는 리스트 커넥션(least connection)

 

응답 속도가 빠른 서버를 우선 사용하는 리스트 타임(least time)

 

특정 문자열 기반 해시를 활용하는 제네릭 해시(generic hash)

 

임의 서버를 할당하는 랜덤 ip 주소 기반 해시를 사용는 IP 해시(ip hash)등이 있습니다.

 

[ 라운드 로빈 ]

 

기본값으로 설정된 부하분산 방법입니다. 업스트림 풀에 지정된 서버의 순서에 따라 요청을 분산한다.

서버의 가용량이 다양하다면 가중치를 적용한 라운드 로빈 방식도 설정할 수 있습니다.

가중치로 더 높은 값이 정숫값이 지정된 서버는 더 많은 요청을 받습니다. 

가중치는 단순히 가중치 평균의 통계적 확률에 따라 계산됩니다.

 

[ 리스트 커넥션 ]

 

엔진엑스와 연결 수가 가장 적은 업스트림 서버로 요청해 전달해 부하를 분산합니다.

라운드 로빈과 마찬가지로 어떤 서버로 요청을 보낼지 계산할 때 가중치를 설정합니다.

리스트 커넥션 알고리즘 지시자는 least_conn 입니다.

 

[ 리스트 타임 ]

 

엔진엑스 플러스에서만 사용할 수 있는 방법입니다.

리스트 커넥션과 마찬가지로 연결 수가 가장 적은 업스트림 서버로 요청을 전달하지만

이 중 응답 시간이 가장 빠른 서버를 우선시한다는 차이가 있습니다.

 

가장 복잡한 부하분산 알고리즘으로 높은성능이 필요한 웹 어플리케이션에 적합합니다.

 

업스트림 서버가 처리하는 요청수가 적다고 해서 늘 가장 빠른 응답시간을 보장하지는 않으므로

리스트 커넥션방식에 대한 일종의 부가 기능으로 생각할수 있습니다.

 

리스트 타임 알고리즘을 사용할 때는 header나 last_byte 매개변수 중 하나를 지정합니다.

header : 업스트림 서버로 부터 응답 헤더를 받을때까지 소요된 시간

last_byte : 헤더 뿐 아니라 응답 전체를 받을때까지 소요된 시간

 

알고리즘 지시자는 least_time 입니다.

 

[ 제네릭 해시 ]

 

서버 운영자는 주어진 텍스트 문자열 혹은 요청이나 런타임 변수 ( 혹은 둘 다 ) 를 사용해서 해시를 정의 합니다.

엔진엑스는 수신한 요청의 해시를 생성하고 업스트림 서버 선택에 활용해 부하를 분산합니다.

 

제네릭 해시는 요청을 처리할 서버를 선택하는 데 깊이 개입해야 할 때나 캐시가 있을 확률이 높은 서버로 요청을 전달하고 싶을 때 무척 유용합니다. 다만 서버가 업스트림 풀에서 추가되거나 삭제되면 해시 처리되면 요청이 재분배된다는 점을 주의합시다. consistent 옵션 매개변수를 사용하면 재분배의 영향을 최소화 할 수 있습니다. 알고리즘 지시자는 hash입니다.

 

[ 랜덤 ]

 

엔진엑스가 업스트림 풀에 지정된 서버를 임의로 선택해 요청을 전달하며 이때 업스트림 서버에 지정된 가중치를 고려합니다. 매개변수로 two [method] 를 사용하면 먼저 서버 두대를 임의로 선택하고 method에 지정된 알고리즘을 이용해 2차 부하분산을 합니다. method 값을 생략하면 기본 알고리즘은 least_conn으로 지정됩니다. 알고리즘 지시자는 random입니다.

 

[ IP 해시 ]

 

HTTP에 대해서만 동작하는 방법으로 IP 주소를 이용해 해시를 생성합니다. 원격 변수를 사용하는 제내릭 해시와 달리 IPV4 주소 체계의 옥텟 값 중 처음 세 값 혹은 IPv6 주소 전체를 해시에 사용합니다. 이 방식을 통해 사용자는 업스트림 서버에 문제가 없는 한 같은 서버로 할당됩니다. 알고리즘 지시자는 ip_hsh입니다.

 

 

 

 

 

 

 

 

 

728x90
728x90

/etc/nginx/

ㄴ 엔진엑스 서버가 사용하는 기본 설정이 저장된 루트 디렉터리이다.

이곳에 저장된 설정 파일의 내용에 따라 동작한다.

 

/etc/nginx/nginx.conf

ㄴ 엔진엑스의 기본 설정 파일로, 모든 설정에 대한 진입점입니다.

워커 프로세스 개수, 튜닝, 동적 모듈 적재 , 다른 엔진엑스 세부 설정파일에 대한 참조를 지정합니다.

 

/etc/nginx/conf.d/

ㄴ 기본 HTTP 설정 파일을 포함합니다. 디렉터리 내 파일 중 이름이 .conf로 끝나는 파일은 앞서 언급한

/etc/nginx/nginx.conf 파일이 가진 최상위 http블록에 포함됩니다. 

 

엔진엑스 설정은 inclue 구문을 활용해 구조화함으로써 각 설정 파일을 간결하게 유지하면 좋습니다.

 

몇몇 패키지 저장소에서 배포되는 엔진엑스는 설치 시 conf.d 디렉터리 대신 site-enabled 디렉터리가 있고,

symlink를 통해 site-available 디레겉리에 저장된 설정 파일들이 연결돼 있을 수 있습니다.

하지만 이 방식은 더는 사용되지 않습니다.

 

/var/log/nginx

ㄴ 엔진엑스 로그가 저장되는 디렉터리로, access.log와 error.log 파일이 있습니다.

 

접근 로그 파일은 엔진엑스 서버가 수신한 개별요청에 대한 로그를 저장하며,

오류 로그 파일은 오류 발생 시 이벤트 내용을 저장합니다.

 

엔진엑스 설정을 통해 debug 모듈을 활성화했다면 디버그 정보도 오류 로그 파일에 기록됩니다.

 

-----------------------------------------------------------------------------------------------------------------------------------

 

[nginx 명령어]

 

nginx -h

ㄴ 엔진엑스 도움말을 살펴봅니다.

 

nginx -v

ㄴ 엔진엑스 버전 정보를 확인합니다.

 

nginx -V

ㄴ 엔진엑스 버전 정보 뿐 아니라 빌드 정보를 보여줍니다. 또한 엔진엑스 바이너리에 포함된 모듈을 보여주는 설정 인숫값을 확인합니다.

 

nginx -T

ㄴ 엔진엑스 설정을 시험하고 결과를 화면에 보여줍니다. 기술 지원이 필요할 때 유용합니다.

 

nginx -s signal ( stop, quit, reload, reopen )

ㄴ stop 엔진엑스 프로세스 동작을 즉시 멈추게합니다.

    quit 현재 진행중인 요청을 모두 처리한 뒤 엔진엑스 프로세스 종료를 합니다.

    reload 엔진 엑스가 설정을 다시 읽어들이게 합니다.

    reopen 지정된 로그파일을 다시 열도록 합니다.

 

 

728x90
728x90

 

nginx 설치

yum 저장소에서는 nginx가 없기때문에 외부 저장소를 추가해주어야 한다.

 

1. cd /etc/yum.repos.d/에서 nginx.repo 파일을 생성 후 다음 내용을 입력한다.

 

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/

gpgcheck=0

enabled=1

 

baseurl에서 OS와 OSRELEASE의 경우 리눅스 배포판과 버전에 따라 기입해준다.

ex) baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/

 

2. 파일 작성을 완료했으면 nginx를 설치한다.

 

yum -y install nginx

systemctl enable nginx

systemctl start nginx

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload

 

---------------------------------------------------------------------------------------------------------------------------------

nginx 설치 상태 점검

 

버전확인

nginx -v 

 

엔진엑스 동작확인

ps -ef | grep nginx

 

nginx가 정상적으로 실행중이라면 두 프로세스가 master와 worker로 표기되어있음

 

nginx index 페이지 실행

curl localhost

 

문제가 없이 잘 실행되었다면 기본 HTML 사이트인 엔진엑스 환영페이지가 뜰것이다.

 

 

 

 

728x90

+ Recent posts