일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 모리셔스 카셀라
- 모리셔스
- openstack
- Melbourne 여행
- 모리셔스 여행
- 프랑크푸르트 여행
- postgresql 비밀번호 변경
- duabi
- postgresql 설치
- 경주 여행
- 두바이여행
- 모리셔스 카젤라
- 서울야경
- 모리셔스여행
- postgresql 비밀번호 초기화
- 트루오비쉬
- 두바이
- mauritius casela
- Trou aux Biches
- 톰캣 서비스 등록
- 독일여행
- 모리셔스리조트
- 서울 야경
- mauritius
- Sony A850
- cloud foundry
- r
- 느낌 사진
- 경주
- bind9
- Today
- Total
I.K.Picture & IT Info.
[Ubuntu] Apache2 SSL 인증서 무료로 SSL 사이트 구축 본문
이 문서는 Ubuntu 16.04 LTS 기준으로 작성되었습니다.
간단하게 테스트를 위해 사이트를 구축하거나 개인 사이트를 운영하기 위해 사용되는
서버에서 SSL 인증서를 구매해서 사용하기에는 너무 부담이 될 수 도 있어서 무료로 발급받아 적용하는 방법에 대해 정리를 해보려고 합니다~
발급하는 기관은 "Let's Encrypt" 입니다. (https://letsencrypt.org/)
발급하는 과정이 우분투 기반으로는 16.04 LTS 기준으로는 쉽게 설치하고 사용할 수 있어서 편리하게 활용할 수 있습니다.
일단 진행하기전 간단하게 apache2 웹 구성하는 방법에 대해 정리할께요
$sudo apt install apache2 $sudo a2enmod rewrite $sudo a2enmod headers $sudo a2enmod ssl $sudo a2dismod -f autoindex |
간편하게 아래 명령어로 발급 프로그램을 설치합니다.
참고사항으로 도메인이 있다고 가정합니다.
(참고로 제가 작성한 글에서는
도메인 DNS를 카페24에서 제공하고 있는 것을 사용하여
개인서버에 도메인을 연결시켜놓은 것이여서
별도 DNS 관련해서는 설명하지 않습니다)
$sudo apt install letsencrypt |
그 다음 바로 도메인에 대해 인증서를 발급받도록 명령어를 아래 예와 같이 실행합니다.
$sudo letsencrypt certonly --webroot --webroot-path=웹Root디렉토리 -d 도메인명 |
저 같은 경우 웹 디렉토리를 /home/intruder/public_html 이라 가정하고 도메인은 test.engintruder.com 으로 가정하겠습니다. $sudo letsencrypt certonly --webroot --webroot-path=/home/intruder/public_html -d test.engintruder.com |
이렇게 수행하면 문제가 생길 경우 알림을 받는 이메일을 작성하라는 창과 관련 인증서에 대한 동의 내용이 보여지게 됩니다.
이렇게 하면 인증서는 발급받은 것이고 이제 서버에 설치된 apache에 등록을 해야하는데요
일단 기본적으로 인증서는 /etc/letsencrypt/live/도메인명 위치에 발급이 됩니다.
cert.pem > 인증서 파일
chain.pem > 인증서 발급자 파일
fullchain.pem > cert.pem과 chain.pem을 합쳐놓은 파일
privkey.pem > 개인키
아파치 설정에서 도메인을 연결하면서 SSL을 적용하면됩니다.
설정 파일에서 /etc/apache2/site-available/[도메인명].conf 를 만들어서 아래와 같이 작성하면됩니다.
(저 같은 경우 도메인을 test.engintruder.com 이라고 가정하도록 하겠습니다.)
/etcapache2/site-available/test.engintruder.conf
<VirtualHost *:80> ServerName test.engintruder.com <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^ - [E=protossl] RewriteCond %{HTTPS} on RewriteRule ^ - [E=protossl:s] RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> </VirtualHost> <VirtualHost *:443> ServerName test.engintruder.com DocumentRoot /home/intruder/public_html <Directory /home/intruder/public_html> Options FollowSymLinks MultiViews AllowOverride All require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/test.engintruder.com-error.log CustomLog ${APACHE_LOG_DIR}/test.engintruder.com-access.log combined Header always set Strict-Transport-Security "max-age=31536000" SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLHonorCipherOrder on SSLCertificateFile "/etc/letsencrypt/live/test.engintruder.com/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/test.engintruder.com/privkey.pem" SSLCertificateChainFile "/etc/letsencrypt/live/test.engintruder.com/chain.pem" </VirtualHost> |
※ 빨간색 글씨 대신 각자 알맞는 도메인, root 디렉토리, 인증서 디렉토리 로 변경하면됩니다.
아시는 분은 아시겠지만 site-available 폴더에 있는 설정은 아직 활성화 전이기 때문에 이를 활성해 해줘야합니다.
$sudo a2ensite test.engintruder.com.conf $sudo service apache2 restart |
참고로 Let's Encrypt는 3개월짜리 인증서라고 합니다.
그렇기 떄문에 만료일 기준 1개월전부터 갱신을 해야하는데 그 부분도 간단한 명령어를 통해 할 수 있다고 합니다.
$sudo letsencrypt renew |
'Development > Web' 카테고리의 다른 글
NW.js를 통한 웹 언어로 데스크톱용 어플리케이션 생성 (0) | 2018.12.28 |
---|---|
[IE 문제] Canvas 내용 파일 저장 (0) | 2018.12.08 |
bower로 클라이언트 라이브러리 쉽게 관리 (0) | 2016.10.07 |
Tomcat out of memory error (0) | 2016.01.21 |
톰캣 실행 오류 (unable to start within 45 seconds...) (0) | 2015.06.16 |