메뉴 건너뛰기

팁/강좌

  • letsencrypt - certbot 을 이용하여 무료 SSL 적용하기 (debian7, nginx 기준) [IT]
  • 공돌이
    조회 수: 2476, 2017.03.16 18:07:02
  • 사용기에서 쓴 바와 같이 letsencrypt.org 에서는 certbot라는 쉬운 인증서발급 클라이언트를 제공하고 있습니다.

    OS나 웹서버에 따라 certbot 설치방식이 조금씩 다른 부분이 있으니 감안하시고 보면 될것 같습니다.

     

    https://certbot.eff.org 들어가시면 환경별로 설치 안내가 자세히 나와있습니다 (영어지만).

     

    여기서 OS와 웹서버를 선택하면 해당 버전에 맞는 안내가 나옵니다.

     

    Debian8부터는 apt repository에 certbot가 포함되어 있으나 Debian7에서는 다음의 명령으로 직접 다운로드를 받아야 합니다.

    적당한 폴더로 가서 아래의 명령을 이용해서 certbot 를 다운로드 받습니다.

    wget https://dl.eff.org/certbot-auto
    chmod a+x certbot-auto

     

    Apache 웹서버를 쓰는 경우에는 인증서발급과 설치를 자동으로 할 수 있으나 nginx는 아직 자동인스톨을 지원하지 않으므로, 약간의 절차가 더 들어갑니다

    다만, 웹 서버 설정이 좀 복잡한 경우에는 추천하지 않습니다. 서버설정이 엉켜버릴 수가 있어서...

    (간단합니다)

     

    우선 인증서를 발급받는 방법은 크게 3가지가 있습니다.

    certbot-auto 가 설치된 디렉토리에서 아래의 명령어를 수행합니다.

    참고로, /etc 폴더내에 letsencrypt 파일이 생성되므로 루트권한이 있어야 합니다 (아니면 sudo 로 실행)

    .certbot-auto certonly

    그러면 아래와 같은 화면이 뜹니다.

    1) Apache 플러그인을 쓸거냐( 아파치가 실행중이어야 함),

    2) 웹루트플러그인을 쓸거냐, 아니면

    3) 자체웹서버를 이용해서 인증서를 받을거냐

    셋 중의 하나를 선택해야 합니다.

    1번 아파치방식은 아파치가 깔려있어야 하는거니까 저는 일단 패스.

    2번 웹루트방식은 웹루트폴더에 특정파일을 추가해서 도메인을 검증받는 방법입니다.(본인이 해당 도메인의 소유자인지 확인)

    3번 스탠드얼론방식은 별도로 파일이 웹폴더에 추가되거나 하지 않는 장점은 있으나, 기존의 웹서버들은 멈춘 상태에서 해야하므로 좀 불편한 부분도 있습니다.

     

    여기서는 웹루트방식을 기준으로 설명하겠습니다. 

    1. 웹루트방식(웹루트에 파일을 넣어서 검증하는 방식)으로 인증서 발급

    2번을 누르면 domain name을 입력하라고 나옵니다. 인증서를 받으려고 하는 서버의 도메인명을 입력합니다.

    여러개의 도메인에 대해 각각 받으시려면 콤마나 스페이스로 띄워서 도메인을 입력하시면 됩니다.

    아래 스크린샷에서

    1) 2번 웹루트방식을 선택하고

    2) 처음사용하시는 경우에는 갱신이나 보안관련 이메일받을 주소를 입력하라고 나옵니다. 입력하고

    3) 이용약관 동의 (A)

         하고 나면 이메일에 혹시 소식같은거 보내도 되냐고 나오는데 이건 알아서 Y/N중 선택하심 되고요

    4) 도메인을 입력하라고 나오면 현재 사용중인 도메인명을 입력합니다 (여러개일 경우는 콤마나 스페이스로 띄워서 입력) 

     

    - 이메일주소로 컨펌메일이 아래처럼 날라오는데, 그냥 링크를 눌러주시면 컨펌이 완료됩니다.

     

    그리고 나오는 화면에서

    1) 1번 새로운웹루트 입력을 선택

    2) 웹루트 경로를 입력

    하시면 됩니다.

    웹루트폴더를 입력하라고 할때 웹루트경로를 입력하시면 자동으로 루트 안에 .well-known이라는 히든폴더를 만들고 뭔가 파일을 만들어서 검증을 시도합니다.'

    가끔 hidden folder에 접근이 안되도록 웹서버 설정이 된 경우가 있는데, 이때는 히든폴더를 막지 않도록 설정을 좀 바꿔주셔야 합니다.(certbot를 실행한 계정이 해당 폴더에 쓰기권한이 있어야 합니다) 


     

    이러면 일단은 인증서는 발급되어 /etc/letsencrypt/live/도메인명  밑에

    cert.pem

    chain.pem

    fullchain.pem

    privatekey.pem

    파일이 생성되어 저장됩니다.

     

    2. 만료될때마다 자동으로 갱신 적용하기

    letsencrypt 를 통해서 발급받은 인증서는 90일 후 만료되기 때문에 90일마다 갱신해줘야 합니다. 귀찮죠? 얘네들이 쉽게 갱신할 수 있는 방법을 제공하더라구요.

    certbot-auto 가 설치된 폴더에서

    ./certbot-auto renew --dry-run 

    를 해보면 갱신에 문제가 없는지 시뮬레이션을 해봅니다. 에러메시지가 안뜨면 문제가 없다는 거겠지요.

    아무런 에러메시지가 안뜨면 cronjob 으로 (root 크론잡으로 해야겠죠 아마)

    /certbot가설치된경로/certbot-auto renew --quiet --no-self-upgrade

    를 등록해서 하루한번 혹은 일주일에 한번 정도 자동으로 실행되도록 하면 걱정 없습니다!

     

    3. 발급받은 인증서로 서버에 SSL 적용하기

    아까 발급받았던 인증서들을 이제 적용해야 하겠죠.

    SSL설정에 자신이 없으신 분들은 https://mozilla.github.io/server-side-tls/ssl-config-generator/ 로 가셔서 각자 자신의 환경에 맞게 조건을 설정하면, 추천 SSL설정이 나옵니다.

     

    기존의 server 블록 안에 아래 내용을 넣거나 별도의 server block을 만들어 기존 서버설정을 복사한 후(포트같은거 빼고) 추가로 아래 내용을 넣어도 됩니다.

     

    각각 항목의 자세한 설명은 생략하고 ㅎㅎ

    listen 443 ssl; 

    ssl_certificate /etc/letsencrypt/live/도메인명/fullchain.pem; 

    ssl_certificate_key /etc/letsencrypt/live/도메인명/privkey.pem; 

    ssl_session_cache shared:le_nginx_SSL:1m; 

    ssl_session_timeout 1440m; 

    ssl_session_tickets off;

     

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 

    ssl_prefer_server_ciphers on; 

    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-SHA ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES128-SHA256 ECDHE-ECDSA-AES256-SHA384 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-SHA384 DHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA DHE-RSA-AES128-SHA256 DHE-RSA-AES256-SHA256 EDH-RSA-DES-CBC3-SHA"; 

     

      # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)

    #  add_header Strict-Transport-Security max-age=15768000;

     

      # OCSP Stapling ---

      # fetch OCSP records from URL in ssl_certificate and cache them

      ssl_stapling on;

      ssl_stapling_verify on;

     

    ssl_trusted_certificate /etc/letsencrypt/live/도메인명/chain.pem;

     

    resolver 8.8.8.8 8.8.4.4 valid=86400; #구글 public DNS를 resolver로 사용

    resolver_timeout 10;

     

    여기까지 설정이 완료되면, 웹서버를 재시작해서 SSL적용하신 후에 테스트 해보시면 됩니다

    끝!

     

    추가 꿀팁)

    1) 무조건 트래픽을 HTTPS로만 받겠다 하시면 웹서버 설정에서 리다이렉션을 설정해주셔야 합니다 

       nginx의 경우 하나의 server 블록 안에 http 와 https설정이 같이 들어가 있다면

    if ($scheme != "https") {
        rewrite ^ https://$host$uri permanent;
    }
    

    이렇게 해주셔야 하구요,

     

     별도의 server block에서 https 처리해주신다면 http server 블록 안에 아래처럼만 추가해주시면 됩니다.

    rewrite ^ https://$host$uri permanent;

    물론, 수정하신 후 서버 재시작은 잊지 않으셨죠?

     

    2) 본인의 서버의 HTTPS 안전성여부를 테스트해보시려면

         https://www.ssllabs.com/ssltest/

     여기 가서 서버 도메인을 입력해보시면 테스트한 결과가 점수로(-_-) 나옵니다. 여러가지 테스트를 자세히 해주니까 좋은거 같아요.

     

댓글 0 ...

https://meisteruser.net/tip_tutorials/1791
  Today 0, Yesterday 0, Total 30
thumbnail
  • 조회 수: 2476
  • 공돌이
    [IT]
  • 사용기에서 쓴 바와 같이 letsencrypt.org 에서는 certbot라는 쉬운 인증서발급 클라이언트를 제공하고 있습니다. OS나 웹서버에 따라 certbot 설치방식이 조금씩 다른 부분이 있으니 감안하시고 보면 될것 같습니다. https://certbot.eff.org 들어가시면 환경별로 설치 안내가 자세히 나와있습니다 (영어지만). 여기서 OS와...
2017-03-16 18:07:02
Mar.16
thumbnail
  • 조회 수: 221
  • 공돌이
  • 15Dec 2015 보통 우리는 새해 결심은 멋있게 세우죠. 하지만 그 장대한 약속들을 계속해서 지켜나가는 것은 완전히 다른 일입니다. 사실 우리 대부분이 제일 못하는 것중에 하나죠. 연구에 따르면, 내년도 목표를 세운 사람들 중 약 8%만이 성공적으로 그 목표를 달성 한 것으로 나타났습니다. 사생활뿐 아니라 사업에도 부...
2017-03-08 18:47:02
Mar.08
thumbnail
2017-03-08 11:10:54
Mar.08
thumbnail
  • 조회 수: 83
  • 공돌이
  • "마인드맵"이 재무설계사(Advisor: 고문/자문이겠지만 좀 어색해서 재무설계사 번역)와 고객/직원 간의 커뮤니케이션 방법과 정보를 회사 전반에 걸쳐 체계화하는 방법을 바꾸고 있습니다. 그 결과는 고객에게 더 좋은 정보의 제공, 엄청난 시간 절약, 높은 고객 유지율과 수수료매출 증가 외 다양하게 나타납니다 . 마인드...
2017-03-05 16:48:03
Mar.05
no image
  • 조회 수: 629
  • 공돌이
    [IT]
  • 원문: https://www.symfony.fi/page/how-to-run-both-php-5-6-and-php-7-x-with-homebrew-on-os-x-with-php-fpm 마이그레이션 테스트를 위해서 두개를 같이 설치하려고 알아보다가 찾은 자료라 이후 레퍼런스를 위해 여기 올려봅니다. ============================================================== PHP는 7.x 대 버전에...
2017-02-28 17:05:35
Feb.28
no image
  • 조회 수: 357
  • 공돌이
  • 마인드마이스터 마인드맵 사용 시 아래 단축키를 참고하시면 도움되실거예요~: 키 값 일반 단축 키 INS or TAB 하위레벨 아이디어 추가 RETURN(엔터) 동일레벨 아이디어를 아래에 추가 SHIFT+RETURN 동일레벨 아이디어를 위에 추가 DEL or BACKSPACE 아이디어 삭제 ALT+C 연결선 추가 ↑, ↓, ←, → 주제(...
2017-02-26 12:23:02
Feb.26
thumbnail
  • 조회 수: 132
  • 공돌이
  • 결혼식, 칵테일파티를 계획하든 기업이벤트를 기획하든 상관없이, 해당 작업의 명확한 그림을 얻고 잘 진행하는 데 마인드맵은 큰 도움이 될 수 있습니다. 이벤트가 어떠해야하는지, 자신의 (또는 상사, 약혼자 또는 친구들)의 기대 사항은 어떤 것들이 있는지, 그리고 어떤 종류의 리소스 (예산, 시간, 인적 자원 등)를 사...
2017-02-26 12:07:19
Feb.26
thumbnail
  • 조회 수: 136
  • 공돌이
  • 무엇보다 중요한 점은 이해할 수 있고 기억에 남을 수 있어야 강렬한 프레젠테이션이 됩니다. 하지만 그게 쉽지는 않지요. 논리적 구조, 명확한 디자인, 의미있는 키워드 및 강력한 비주얼이 필요합니다. 그리고 종종 간과되는 또 다른 중요한 요소가 있습니다. 청중은 필요하면 언제라도 현재 그들이 받는 정보가 프레젠테...
2017-02-23 16:26:16
Feb.23
no image
  • 조회 수: 135
  • 공돌이
  • 팀 프로젝트에서 협업하기 예를 들어 마케팅 캠페인, 회사 행사, 새로운 앱 개발, 혹은 완전히 다른 무언가 같은 팀 프로젝트를 계획, 구성 및 관리해야한다고 가정해 봅시다. 대부분의 경우 여러분은 다음의 작업을 수행해야 할 것입니다: 브레인스토밍을 통해 동료들의 창의적인 의견을 모으기 주요일정을 포함한 로드맵 ...
2017-02-23 15:16:30
Feb.23
thumbnail
  • 조회 수: 151
  • 공돌이
  • 우선, 노트필기에 좋은방법 나쁜방법이 따로 있는건 아니라는 말씀을 드립니다. 가장 중요한 건 당신에게 알맞는 방법을 사용해야 한다는 겁니다. 만약 당신에게 딱 맞는 방법을 찾으셨다면 - "만세"를 외치세요! 하지만 대부분의 경우 학생들은 초기에 써본 방식을 몇년에 걸쳐 적응한 다음, 고민하지 않고 그 방법을 그냥...
2017-02-23 14:15:44
Feb.23
thumbnail
  • 조회 수: 265
  • 공돌이
  • (참고: 이게 유럽학생들을 기준으로 영어를 배운다는 기준으로 작성된 자료라서 한국상황과는 약간 안맞을 수도 있겠네요. 대충은 비슷하지만...) 마인드 맵은 공부하고 기억하기에 좋습니다. 따라서 제2외국어를 더 쉽고 빠르며 재미있게 배울 수 있습니다. 모든 연령의 학생들은 이 간단한 기법을 사용하여 어휘를 외우고...
2017-02-20 17:38:23
Feb.20
thumbnail
  • 조회 수: 673
  • 공돌이
  • Writing a Scientific Paper 고등 교육의 길로 들어서면 현재까지 다른 사람들이 쌓아왔던 지식을 우리 자신의 발견, 의견과 합쳐서 유익하고 과학적으로 검증 가능한 논문으로 바꿔 달라는 기대를 받습니다. 그런 논문을 쓰는 사람은 누구나 그것이 얼마나 많은 노력 - 다양한 논증, 정의, 인용구 등을 찾고, 수집하고, 구...
2017-02-19 15:21:16
Feb.19
thumbnail
  • 조회 수: 69
  • 공돌이
  • 마인드맵 연결하기 앞서 말한 바 처럼, 마인드맵이 효과적인 한 가지 이유는 한 장의 종이 안에 내용을 정리하기 때문에, 주제에 대한 훌륭한 개요를 제공한다는 점입니다. 그런데 만약 공간이 부족하면 어떻게 될까요? 사실 많은 사람들이 마인드맵 사용을 두려워합니다. 종이를 가득 채웠는데도 여전히 더 추가해야할 정보...
2017-02-18 00:49:38
Feb.18
thumbnail
  • 조회 수: 146
  • 공돌이
  • How to Develop Your Own System "마인드매핑 방식(mind mapping system)"이란 색상, 아이콘, 연결 등을 사용하고 추가하고 적용하는 방법입니다. 가끔 브레인 스토밍을 하거나 할일 리스트작성을 하기 위해 영리하게 고안된 마인드맵핑 방식이 필요하지는 않겠지만, 정기적으로 마인드맵으로 작업을 해야 할때, 특히 업무나...
2017-02-17 18:02:59
Feb.17
no image
  • 조회 수: 114
  • 공돌이
  • 기본적으로 세 가지 다른 마인드 맵 형식이 있습니다. 문서 형식, 디지털 형식 및 온라인 형식 중에서 선택할 수 있습니다. 온라인 형식은 실제로 디지털 형식의 변형일 뿐이지만 기존의 디지털 형식과 구별되는 많은 기능과 이점을 제공합니다. 이것이 온라인 형태를 별도의 형식으로 취급하기로 한 이유입니다. 물론 실제...
2017-02-17 17:14:08
Feb.17
thumbnail
  • 조회 수: 91
  • 공돌이
  • The Most Important Mind Mapping Uses 마인드 맵핑은 다양한 분야에서 다양한 목적으로 사용될 수있는 엄청나게 다재다능한 기술입니다. 다음은 가장 일반적이며 중요한 사용 영역에 대한 리스트입니다. 브레인스토밍: 마인드 맵핑은 아이디어의 자유로운 흐름과 (다른 기법에서는 보기 힘든) 연결성의 촉발을 유도하는, 브...
2017-02-17 16:33:55
Feb.17
no image
  • 조회 수: 84
  • 공돌이
  • Who Mind Mapping Is for 마인드맵은 그리기 쉽기 때문에 누구나 만들 수 있습니다. 경험적으로 만 8세 이후부터는 누구나 해당된다는 것을 알 수 있습니다. 일부에서는 글을 모르는 미취학 아동조차도 글로 작성된 모든 부분을 그림(그리기)으로 간단히 대체함으로써 이 도구(마인드맵)를 사용할 수 있다고 믿습니다. 그러...
2017-02-17 15:17:39
Feb.17
thumbnail
  • 조회 수: 88
  • 공돌이
  • Why Mind Maps Work So Well 그래픽적인 구조 : 마인드맵은 주제와 계층 간의 관계를 시각적으로 표시합니다. 마인드맵의 2차원 구조는 연결을 쉽게 만들 수 있고, 실제 주제 / 목표 / 질문이 맵의 중간에 위치하기 때문에 항상 이들에 대한 초점을 잃지 않습니다. 개요 : 마인드 맵을 사용하면 한 눈에 주제의 모든 내용을 ...
2017-02-17 15:04:00
Feb.17
no image
  • 조회 수: 62
  • 공돌이
  • 마인드 맵핑을 통해 집중할 수 있습니다. 마인드맵의 주제는 항상 가운데에 있으므로 바로 눈에 들어옵니다. 이것은 주제에 집중할 수 있도록 도와줍니다. 마인드 맵핑을 통해 생각을 구조화 할 수 있습니다. 아이디어가 얼마나 복잡하건, 주제가 얼마나 크건 간에, 마인드 맵은 혼돈에 질서를 가져옵니다. 마인드 맵핑은 ...
2017-02-17 14:42:16
Feb.17
thumbnail
  • 조회 수: 128
  • 공돌이
  • How to Draw and Read Mind Maps 마인드맵핑은 쉽고 직관적이며 많은 가이드 라인과 팁이 있지만 시작하기 위해 꼭 알아야 할 사항은 몇 가지 기본적인 사항 뿐입니다: 1. 빈 종이, 화이트보드 또는 빈 디지털 맵 편집기로 시작합니다. 중앙부분에 당신의 마인드맵이 무엇을 다룰 것인지 (그게 무엇이건 간에) 기록하십시오 ...
2017-02-17 14:27:50
Feb.17
태그
위로