무료 SSL인증서로 https 사용하기

무료SSL인증서로 https 사용하기
무료SSL인증서로 https 사용하기

무료 SSL 인증서 발급 사이트

조건부 무료는 제외하고 기간 연장시에도 제한 없이 무료발급이 가능한 사이트를 선정했습니다.

Let’s Encrypt 선정이유

  • 회원가입이 필요 없음
  • 보안을 위해서 보통 3개월마다 재발급을 받게 되는데 자동발급기능이 지원됨
  • 비영리단체기관으로 Mozilla, Site Ground, Cisco, Facebook, Akamai등 유명한 회사들의 후원을 받고 있어 신뢰성이 있다.
  • 개인적으로 서버를 직접 운영중인 입장에서 여러 계정을 관리하는데 있어 설치 및 설정이 가장 간편한 점. (개인에 따라 다를 수 있음)

이러한 이유를 근거로 저는 Let’s Encrypt를 선정하게 되었습니다. 참고로 ZeroSSL도 사용해 봤는데 어렵지 않게 성공했었어요.

준비사항

  • 서버환경: 우분투(Ubuntu 22.04.2) + apache
  • SSH 관리자 권한, 기본적인 파일 편집 지식

시작하기

snapd 설치

아파치를 최신상태로 업데이트하고 snapd를 설치

$ sudo apt update
$ sudo yum install snapd
$ sudo snap install core; sudo snap refresh core

certbot 설치

certbot이 설치되어 있었다면 삭제해 줍니다.

$ sudo apt-get remove certbot

snapd를 이용해서 certbot을 설치합니다.

$ sudo snap install --classic certbot

certbot 명령어를 어디에서나 실행할 수 있도록 심볼릭 링크를 만들어줍니다.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

인증서를 발급받고 아파치 웹서버에 설정이 자동으로 이뤄집니다.

$ sudo certbot --apache

이후 도메인의 추가/변경이 없이 인증서만 새로 발급받고 싶은 경우에는 certonly를 추가합니다.

$ sudo certbot certonly --apache

인증서를 적용할 도메인을 선택하는 메뉴가 나오는데 해당 도메인 번호를 선택해 주면 됩니다.
여러개를 선택할 때는 컴마(,)나 스페이스바로 구분지어 주면 됩니다.
방화벽 포트(443)를 열어줍니다.

$ sudo ufw allow https

웹서버를 재시작해 줍니다.

$ sudo service apache2 restart

이후 자동으로 설정되어 https 접속이 가능해집니다.

설정후 https접속이 잘 된다~

작업후기

저는 가상호스팅을 이용 중인데 인증서를 받는 부분에서 개별적으로 여러 번 받았습니다.
설정이 중복 설정되면서 접속 오류가 있었는데요.
잘못되었거나 문제가 된 경우에는 설정된 추가된 부분을 삭제하고 다시 발급을 받으면 설정이 다시 됩니다.

$ rm /etc/apache2/sites-enabled/virtual-host-le-ssl.conf
$ sudo certbot --apache 

위 명령으로 수정되는 파일은 두 곳이 있습니다.
설정이 오류로 연결이 잘 안 될 때는 아래 예시를 참고하여 본인에 맞는 값을 찾아 수정해 주시면 될 것 같네요.

  • 아파치 설정 파일(개인마다 다를 수 있음)
    /etc/apache2/sites-enabled/virtual-host.conf
    <VirtualHost *.80>
    ServerName ljj.kr
    ServerAlias www.ljj.kr
    DocumentRoot /home/ljj/public_html
    RewriteEngine on RewriteCond %{SERVER_NAME} =ljj.kr
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
  • 추가된 설정 파일
    /etc/apache2/sites-enabled/virtual-host-le-ssl.conf
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName ljj.kr
    ServerAlias www.ljj.kr
    DocumentRoot /home/ljj/public_html
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/ljj.kr/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/ljj.kr/privkey.pem
    </VirtualHost>
    </IfModule>

아파치 설정 파일은 기본 도메인 별 기본 설정이 되어 있고 SSL접속에 대한 설정은 웹 설정 파일 뒤에 -le-ssl이라는 이름이 붙으면서 설정 파일에서 만들어집니다. 부디 성공하셔서 안전한 웹사이트 운영하세요~

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다