본 설치 안내는 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)
'Cloud 개발' 카테고리의 다른 글
[무료 기업 메일 2탄] 오픈소스 웹메일 Roundcube - 회사 업무용 웹/모바일 웹메일 (0) | 2023.11.11 |
---|---|
Apache James Mail 아웃룩 연결 설정하기 (0) | 2021.12.05 |
리눅스 서버 해킹으로부터 보호 하는 최소한의 전략 (0) | 2021.12.05 |
let's encrypt 자동 갱신 설정 - 초간단 방법입니다. (0) | 2021.10.05 |
오픈소스 기반 웹메일 서비스 구축하는 방법 - 기업용 메일 시스템 구축하기 (0) | 2021.10.04 |