Cloud 개발

Let's Encrypt ssl 적용 - 무료 SSL 인증서 설치 (apache https 설치)

긋대디 2021. 10. 5. 23:26

본 설치 안내는 CentOS 7 기준으로, 무료 SSL 인증서를 웹서버에 적용하는 방법을 설명합니다.

let's Encrypt 인증서는 무료이나 유료인증서와 다르게 3개월 단위로 갱신하여야 합니다.

이는 자동 갱신 설정만 추가하면 계속 사용 가능합니다.

​검색하시면 설치하는 방법도 다양하며, 그중 가장 심플한 설치 방법을 테스트 후 작성한 내용입니다. 서버만 설정되어 있다면 인증서 관련은 2~3분이면 완료됩니다.

설정에 앞서 apache 웹서버가 설치되어 있어야 하며, 설치되지 않았다면, yum으로 간단하게 설치한 후 아래 설정을 따라서 진행합니다.

 

설치 순서

  • 1. Apache Conf 설정
  • 2. Certbot 설치 및 인증서 생성
  • 3. https 443 port 방화벽 해제
  • 4. 인증서 자동갱신 설정

해당 설정 도메인은 mail.korea.co.kr로 가정하고 진행한 예제입니다.

본인의 도에인에 맞게 변경하여 진행하시면 됩니다.

 

 

Apache conf 설정

1. httpd conf 설정

ssl 설정을 위해 가상 호스트가 설정되어 있어야 합니다.
설정하지 않으면 인증서 생성시 설정하라는 메시지가 표시되니 먼저 설정하고 다음 Step을 진행합니다.

 

* httpd.conf에 ServerAdmin, ServerName, DocuemntRoot 확인 및 설정

# vi /etc/httpd/conf/httpd.conf

#아래 항목 찾아서 # 제거 및 도메인에 맞게 설정
ServerAdmin admin@korea.co.kr

# 본인의 도메인에 맞서 서버 도매인 적용
ServerName mail.korea.co.kr:80

# 해당 설치 문서 root 설정
DocumentRoot "/var/www/html"​

 

2. 가상호스트 설정

아래 경로로 이동 후 가상호스트 파일 추가

# cd /etc/httpd/conf.d 아래 파일이 없으면 생성한다. ​
# vi httpd-vhost.conf ( DocuemtRoot 및 도메인은 해당 서버에 맞게 지정)

<VirtualHost *:80>
   ServerAdmin admin@korea.co.kr
   DocumentRoot "/var/www/html"
   ServerName mail.korea.co.kr
   ErrorLog "logs/mail.korea.co.kr-error.log"
   CustomLog "logs/mail.korea.co.kr-access.log" common
</VirtualHost>

 

3. SSL 접속 도메인 설정
# cd /etc/httpd/conf.d

# vi ssl.conf


<VirtualHost _default_:443>
# General setup for the virtual host, inherited from global configuration
#DocumentRoot "/var/www/html"
#ServerName 
www.example.com:443

ServerName mail.korea.co.kr

 

 

4. 설정 후 정상 설치되었는지 확인하기 위해 서버 재시작 후 확인
# systemctl restart httpd

 

 

 

 


1. Certbot 설치
( 가상호스트 설정 되어 있다면 인증서 설치는 아래 두 명령이면 됨)

# yum install certbot python2-certbot-apache
# certbot --apache -d mail.korea.co.kr

설치시 나오는 물음은  Yes 하면 됩니다.

 

2. 설정된 ssl 확인
#vi /etc/httpd/conf.d/ssl.conf

파일 아랫부분에 해당 내역이 있으면 설정이 정상적으로 되었다.
SSLCertificateFile /etc/letsencrypt/live/mail.korea.co.kr/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mail.korea.co.kr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/mail.korea.co.kr/chain.pem

 

 

HTTPS 허용 : SSL 443 Port 접속 해제

1. 현재 방화벽 확인

 

# firewall-cmd --list-all

[root@vm1 conf.d]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens3
  sources:
  services: dhcpv6-client ssh
  ports: 25/tcp 143/tcp 3306/tcp 80/tcp
  protocols:
  masquerade: no
  forward-ports: port=25:proto=tcp:toport=1125:toaddr=
        port=143:proto=tcp:toport=1143:toaddr=
  source-ports:
  icmp-blocks:
  rich rules:
​


2. 설정된 활성화 Zone 확인

# firewall-cmd --get-active-zones

[root@vm1 conf.d]# firewall-cmd --get-active-zones
public
  interfaces: ens3


3. ssl 포트 방화벽에 추가

# firewall-cmd --permanent --zone=public --add-port=443/tcp


4. 설적 적용

# firewall-cmd --reload

 

 

Aapche ssl 적용 확인

# systemctl restart httpd


웹브라우저 접속해서 확인

http://mail.korea.co.kr로 접속시 https://mail.korea.co.kr로 Redirect 되면 정상 설정되었다.

 

 

※ 인증서 자동갱신 방법은 아래 링크 참조

let's encrypt 자동 갱신 설정 - 초간단 방법입니다. (tistory.com)

 

let's encrypt 자동 갱신 설정 - 초간단 방법입니다.

인증서 자동 갱신 설정을 최대한 간단한 방법을 찾아서 정리해 봤습니다. 예전에 어려워 보여서 포기했으나 다시 정리하면서 해보니 쉽네요 먼저 인증서가 설치되어 있어야 합니다. 설치되지

softone.tistory.com