PEM -> DER(바이너리) $ openssl x509 -in 원본인증서.pem -out 저장인증서.der -outform DER (인증서) $ openssl rsa -in 원본개인키.pem -out 저장개인키.der -pubout -outform DER (개인키) DER/CER(바이너리) -> PEM $ openssl x509 -in 원본인증서.cer -out 저장인증서.pem -outform pem $ openssl x509 -in 원본인증서.der -out 저장인증서.pem -inform der -outform pem pkcs#12 -> crt $ openssl pkcs12 -in pkcs12.p12 -clcerts -nokeys -out 저장인증서.crt privateKey + 인증서 -> pf..
분류 전체보기
RHEL/CentOS Linux는 기본 패키지에 포함되어 있으므로, 별도 설치가 필요 x Windows나 기타 Unix에서는 별도의 설치가 필요함 개인키(PrivateKey) 생성 암호화하지 않은 개인키 생성 $ openssl genrsa -out private_key.pem 1024 3DES로 암호화된 개인키 생성(PassPhrase를 입력해야 한다.) $ openssl genrsa -des3 -out enc_private_key.pem 1024 기존 개인키에 패스워드 추가 $ openssl rsa -des3 -in private_key.pem -out enc_private_key.pem 기존 개인키에 패스워드 제거 $ openssl rsa -in enc_private_key.pem -out priva..
프록시란? 프록시(Proxy)란 '대리'라는 의미를 갖고 있으며, 서버와 서버사이의 중계기역할을 한다. 보안상의 이유로 직접 통신할 수 없는 두 점사이에서 대리로 통신을 수행하는 기능을 가리켜 '프록시'라고 하며, 프록시서버로 부른다. Forward 프록시 프록시 서버를 '클라이언트 호스트들과 원격 리소스 사이'에 위치시키는 방법 프록시 서버는 클라이언트가 요청한 리소스를 원격 리소스에서 가져와서 클아이언트에게 돌려주는 역할을 수행한다. 만약 캐시가 있다면, 다음 요청시에는 캐시된 데이터를 제공해준다. 이 방식은 대역폭을 감소시킬 수 있다는 것과 접근 정책 구현에 있어 다루기 쉬우면서 비용도 저렴하다는 장점이 있어 기업환경에서 많이 사용한다. ex) 기업 사내망에서 특정 url에는 접근을 못하게 하는 방..
curl -vI https://www.naver.com 옵션관련 -I : 헤더요청만 받는다. HEAD메서드를 보내는 것과 동일 -v(verbos) : 동작하면서 자세한 옵션을 출력한다. curl -vI host 를 이용하면 host에 대한 인증서 정보를 볼 수 있다. https connection과정 정보도 같이 출력된다. 서비스를 할 때, certification 관련 expceion이 났다면 curl을 통해 간단하게 인증서가 정상인지 확인해 볼 수 있다.
restTemplate을 이용해서 response body를 String.class로 변환했을 때 한글이 깨지는 현상이 있었다. 이상하게도 여태까지 이런적은 없었는데.. 특정한 프로젝트에서만 발생하였음.(너무오래되서 전역적인 설정은 기억이안남...) 일단 급하게 처리한 방법은 아래와 같다. restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); restTemplate.getForObject(url, String.class); restTemplate이 가지고있는 messageConverter List의 맨 앞에 StringHttpMessageConverter를 넣어주는 거다. (r..
API를 만들다보면, Timeout에 관한 얘기들을 많이 듣곤한다. 일정 시간동안 응답이 없으면, 실패처리해주세요. 몇 초 동안 기다렸다가 응답이 안오면, retry를 해주세요. 등등 처음에 Timeout의 종류를 들으면 상당히 헷갈리는데, 헷갈릴때마다 참고하기 위해.. 정리를 해둔다. Connection Timeout 클라이언트가 어떤 사유로 인해서 서버에 접근자체를 실패했을시 적용되는 것이 Connection Timeout이다. 접근을 시도하는 시간제한이 Connection Timeout이 된다. 예를 들어, Connection Timeout이 5초인 Apache 서버가 있다. 그런데 이 Apache서버에 요청이 몰려서, 요청이 처리되려면 상당시간 기다려야 한다.(5초 이상) 그렇게 되면 클라이언트에..
웹서버의 ssl(https)설정은 무척 복잡하다. ssl_module관련된 directive들이 자세히 나와있는 글들이 별로 없는데, 아주 좋은 블로그를 발견하여서 참고해서 작성하였다. (사실 거의 똑같다..) 존경합니다. (출처 : https://golmong.tistory.com/170) 설정 지시자(configuration directive) SSLPassPhraseDialog Apache가 시동될 때 SSL이 적용된 각 virtualhost에 대한 Certificate와 Private Key를 읽어온다. 보안을 위해서 Private Key들은 암호화되어 있으며, 따라서 mod_ssl은 관리자에게 암호화된 PrivateKey를 복호화하기 위해서 Pass Phrase를 요구한다. Builtin exe..
locate - 파일명을 파일 위치 찾기 locate bin/zip find - 디렉토리 트리 내에서 파일 검색하기 xargs - 표준 입력으로부터 인자 목록을 만들고 실행하기 touch - 파일 시간을 변경하기 stat - 파일이나 파일시스템 상태 표시하기 find - 다양한 방법으로 파일 찾기 locate는 오로지 파일명으로 파일을 찾지만, find 프로그램은 다양한 속성에 근거하여 주어진 디렉토리를 검색하여 파일을 찾는다. # find [검색할 디렉토리명] 파일 형식 찾기 b : 블록 특수 파일 c : 문자 특수 파일 d : 디렉토리 f : 파일 l : 심볼릭 링크 파일 # find ~ -type f -name "*.JPG" -size +1M | wc -l # *.JPG와 일치하며, 1메가바이트보다..
입출력 방향 지정(I/O 리다이렉션) I/O는 입/출력을 뜻하고, 명령은 리다이렉션을 통해 파일을 입력받을 수 있고, 또한 파일로 출력할 수 있다. 뿐만 아니라 강력한 명령어 파이프라인을 만들기 위해서 필요한 명령어들을 연결할 수 있다. cat : 파일 연결하기 sort : 텍스트 라인 정렬 uniq : 중복 줄을 알리거나 생략하기 wc : 각 파일의 개행 및 단어 개수, 파일 바이트 출력하기 grep : 패턴과 일치하는 라인 출력하기 head : 파일 첫 부분 출력하기 tail : 파일 마지막 부분 출력하기 tee : 표준 입력을 읽고 표준 출력 및 파일에 쓰기 파일 입출력과 표준 오류 ls와 같은 프로그램은 사실 표준 출력(stdout) 이라고 불리는 특수한 파일에 이 명령어에 대한 결과를 보내고 표..
소개 rsync는 Remote Sync의 약자로 여러가지 옵션을 이용해 원격 또는 로컬에 파일을 전송하는 툴이다. rsync remote-update protocol을 이용하여 로컬과 원격 디렉토리 모두 동기화함. 사용법 rsync [options ...] [source] [target] 옵션 -v : verbose를 높이는 옵션으로 복사하는 과정을 더 자세하게 보여줌 -z : compress를 주는 옵션으로 파일을 복사할 때 압축해서 복사 -h : 사람이 읽기 쉬운 형태로 복사 결과들을 출력해줌 -r : 재귀적으로 하위 디렉터리까지 복사(전송시 타임스탬프나 permission을 보존하지 않음) -l : symlink형태로 복사하는 옵션 -p : 파일과 디렉토리들의 권한을 유지하는 옵션 -t : 수정시간..