[태그:] Let’sencrypt

  • Let’s Encrypt 와일드카드 인증서 발급하기

    Let’s Encrypt 와일드카드 인증서 발급하기

    1. Certbot 설치

    먼저 Certbot을 설치합니다.

    sudo apt-get update

    2. 인증서 생성
    2.1 생성 명령어 입력

    sudo certbot certonly –manual –preferred-challenges dns -d “*.mydomain.com” -d “mydomain.com”

    *mydomain.com만 주게 되면 domain으로 접속 시 SSL 인증서 적용이 되지 않습니다. -d 옵션을 한번 더 줘서 지정해줍니다.

    3. DNS TXT 레코드 타입 설정
    3.1 첫번째 TXT값 입력

    발급받은 인증서를 통해 SSL을 적용하고자 하는 도메인의 실소유자인지 인증하는 과정이 필요합니다.

    이렇게 발급한 값을,

    _acme-challenge를 서브 도메인으로 TXT레코드 타입으로해서 생성한 값을 집어넣습니다.

    DNS 설정 적용 버튼을 누른다고 바로 적용되지 않습니다. 한 1~2분 뒤쯤 시간이 지나고, enter를 눌러 다음으로 넘어가도록 합니다.

    TXT 레코드는 네임 서버 변경과 다르게, 전 세계에 전파되는데, 많은 시간을 필요로 하지 않습니다.

    3.2 두번째 TXT값 입력
    3.1을 진행하면, 또 값을 발급해달라고 요구합니다.

    TXT 레코드 설정 시 별도의 줄에 여러 값을 입력할 수 있습니다.

    Let’s encrypt 측은 TXT 레코드를 추가 후 삭제하지 말라고 하는데, 이미 소유자 인증을 마친 경우 추후 삭제해도 무방합니다.

    4. 발급받은 파일 조합

    이 화면이 뜬다면 정상적으로 SSL 인증서가 생성된 것입니다.

    발급받은 SSL 인증서 경로는 /etc/letsencrypt/live로 디렉토리를 이동하시면, 실제 파일을 확인해 볼 수 있습니다.

    이제 해당 경로의 인증서와 웹서버를 연결해줍니다.

  • Let’s encrypt 인증서 발급할 때 유의사항

    Let’s encrypt는 Apache2나 Nginx를 운영할 때 SSL 인증서를 무료로 발급해 주는 툴이다. 구글, 모질라 재단 등에서 후원하고 있는 프로젝트이기도 하다.

    Let’s encrypt는 리눅스 터미널에서 명령어를 사용해야 하는데, 인증서 발급 시 유의사항이 있다.

    Cleaning up challenges
    Problem binding to port 80: Could not bind to IPv4 or IPv6.

    80포트가 이미 사용 중이라서 certbot 명령어를 사용해 인증서를 발급 받을 수 없다고 출력이 되었다.

    이 경우 아파치나 엔진엑스가 실행 중이라면 위와 같은 문구가 출력될 수가 있는 것이다. 따라서 아파치나 엔진엑스를 죽여주면 된다.

    예: service apache2 stop (엔진 엑스를 사용중이라면 service nginx start)

    서버 엔진이 죽었다면, 다시 certbot 명령을 사용해서 인증서를 발급받으면 된다. 만약 인증서를 발급받았다면, 다시 서버엔진을 실행해 주어야 한다.

    예: service apche2 start (엔진 엑스를 사용중이라면 service nginx start)