애플맥

[macOS] Lets Encrypt 인증서 발급방법


[macOS] Lets Encrypt 인증서 발급방법




최초 작성일 : 2021-09-27 | 수정일 : 2023-05-12 | 조회수 : 755

Let's Encrypt를 이용하여 Apache 웹서버를 중단하지 않고 SSL 인증서를 발급받는 방법은 다음과 같다.
이 가이드에서는 Certbot의 --webroot 플러그인을 사용한다.
이 플러그인은 웹서버가 실행 중인 상태에서 인증서를 발급받을 수 있게 해준다.

  1. Certbot 설치: Homebrew를 사용해 macOS에 Certbot을 설치한다.
    터미널에서 다음 명령어를 실행해보자.

    brew install certbot
  2. 도메인 등록: Certbot을 실행하고 웹 루트 디렉토리를 지정하여 인증서를 발급받는다.
    웹 루트 디렉토리는 웹 서버에서 호스팅하는 파일들이 위치한 디렉토리이다.
    예를 들어, 아파치 웹서버의 경우 기본 웹 루트 디렉토리는 /Library/WebServer/Documents/일 수 있다.
    터미널에서 다음 명령어를 실행해보자.

    css
    sudo certbot certonly --webroot -w /path/to/your/webroot -d yourdomain.com -d www.yourdomain.com

    여기서 /path/to/your/webroot는 웹 루트 디렉토리의 경로이고, yourdomain.comwww.yourdomain.com은 인증서를 발급받으려는 도메인이다.
    필요에 따라 이 값들을 변경하면 된다.


  3. Apache 설정 업데이트: 인증서가 발급되면 아파치 웹서버의 설정을 업데이트해야 한다.
    SSL 설정은 일반적으로 httpd-ssl.conf 파일에 저장되어 있다.
    이 파일을 열고 다음과 같이 설정한다.

    bash
    SSLEngine on SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem

    yourdomain.com은 인증서를 발급받은 도메인으로 변경한다.


  4. Apache 재시작: 설정을 업데이트한 후 아파치를 재시작하여 새로운 설정을 적용한다.

    sudo apachectl restart
  5. 자동 갱신 설정: Let's Encrypt 인증서는 90일마다 갱신해야 한다.
    crontab을 사용해 자동 갱신을 설정할 수 있다.

    crontab -e

    그리고 다음 줄을 추가한다 (매일 새벽 2시에 인증서를 갱신하도록 설정):

    javascript
    0 2 * * * /usr/local/bin/certbot renew --quiet --renew-hook '/usr/sbin/apachectl graceful'

    이렇게 설정하면 Certbot이 자동으로 인증서를 갱신하고, --renew-hook 옵션에 의해 아파치 서버가 재시작되어 새 인증서를 적용하게 된다.
    이 때,
    graceful 옵션은 현재 연결을 중단하지 않고 아파치를 재시작하게 해준다.

    1. 테스트: 모든 설정이 완료되면 웹 브라우저를 통해 https://yourdomain.com에 접속하여 SSL이 제대로 작동하는지 확인한다.
      브라우저의 주소창에서 자물쇠 아이콘이 표시되어야 하며, 클릭하면 Let's Encrypt로부터 발급받은 인증서 정보를 볼 수 있어야 한다.

    2. 보안 강화: 추가적으로, 웹서버의 보안을 강화하기 위해 HSTS(Strict Transport Security) 설정을 추가하는 것을 고려해볼 수 있다.
      이 설정은 브라우저에게 이 사이트가 항상 HTTPS를 통해 접속되어야 함을 알려줍니다.
      아파치 설정 파일에서 다음 줄을 추가한다.

      vbnet
      Header always set Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload'

      이 설정은 1년 동안(HSTS max-age) 이 도메인과 모든 서브도메인이 HTTPS를 사용하도록 브라우저에 지시한다.
      이 설정을 추가한 후 아파치를 다시 재시작해야 한다.

    이렇게 하면 Let's Encrypt 인증서를 사용해 아파치 웹서버를 HTTPS로 전환하는 과정이 완료됩니다.
    이제 사용자는 안전하게 웹사이트를 방문할 수 있다.

Tags  #Lets_Encrypt  

닉네임:
댓글내용: