apache2 에 SSL 인증서 적용하기.(Let's Encrypt)

Let's Encrypt

앞서 포스팅에서는 nginx에 SSL을 적용했다면 이번에는 apache 웹서버에 적용해보도록 하겠다. 전체적인 틀은 비슷하지만 조금씩 다르니 천천히 따라하면된다.

설치하기에 앞서 먼저 도메인에 대한 가상 호스트를 생성해준다.

vi /etc/apache2/sites-available/dalso.iptime.org.conf

<VirtualHost *:80>
    ServerAdmin dalso@dalso.iptime.org
    DocumentRoot /var/www/html
    ServerName dalso.iptime.org;
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

작성 후 apache2ctl configtest 로 체크.

service apache2 reload 로 갱신

이제 본격적으로 certbot을 설치해보자. 먼저 apt 의 repository에 certbot 을 업데이트 해줘야 되는데 다음 명령어이다.

add-apt-repository ppa:certbot/certbot

[Enter] 누르자.

그다음 certbot의 apache 전용 패키지를 설치한다.

apt install python-certbot-apache

이제 설치된 certbot을 가지고 SSL인증서를 받아보도록 하자.

명령어를 입력하면 email 및 동의를 구하는데 하고싶은대로하면된다 Agree만누르자.

제대로 완료하면 이경로에 ssl파일들이 생성되어있다.

인증서의 유효기간은 90일이고 certbot renew 명령어로 갱신이 가능하다. (60일이후에)
자동갱신을 원한다면 crontab에 일정을 지정해주도록 하자.

SSL을 적용했으니 http로 오는사용자들에게 https로 리다이렉팅 할수있도록해야한다. 앞서 apache 설치하기를 정상적으로 수행했다면 Rewrite 모듈이 설치되어있기때문에 아래와 같이 적용하면 될것이다.

<VirtualHost *:80>
  ServerName dalso.iptime.org
  ServerAlias dalso.iptime.org
  ServerAdmin dalso@dalso.iptime.org
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
  ErrorLog ${APACHE_LOG_DIR}/example-error.log
  CustomLog ${APACHE_LOG_DIR}/example-access.log combined
</VirtualHost>
<VirtualHost *:443>
  ServerName dalso.iptime.org
  ServerAlias dalso.iptime.org
  ServerAdmin dalso@dalso.iptime.org
  DocumentRoot /var/www/html
  ProxyRequests Off
  SSLProxyEngine on
  ProxyPreserveHost On
  AllowEncodedSlashes NoDecode
  <Proxy *>
    Order deny,allow
    Allow from all
  </proxy>
  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/dalso.iptime.org/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/dalso.iptime.org/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/dalso.iptime.org/fullchain.pem
  ErrorLog ${APACHE_LOG_DIR}/example-error.log
  CustomLog ${APACHE_LOG_DIR}/example-access.log combined
</VirtualHost>

위의 코드에서 SSLCertificateFile만 수정하면 된다.

나는 iptime의 포트포워딩 기능을 이용해서 외부에서 dalso.iptime.org 의 443 포트로 접근하면 내부서버로 통신되게끔 해놓았다.

웹사이트에서 dalso.iptime.org를 접속해보면

정상적으로 인증서가 등록되었음을 확인할 수 있다.

 

————————————————–

사이트 리뉴얼중입니다~

서버(Linux, ESXi), NAS(헤놀로지, ESXi 및 IT관련 정보, 기타 등등을 공유하는 커뮤니티 SVRFORUM을 새로 만들었습니다.
많은 가입(?) 부탁드립니다~
https://svrforum.com

이전글들은 모두 상단 메뉴의 Blog 글 모음에있습니다!

One thought on “apache2 에 SSL 인증서 적용하기.(Let's Encrypt)”

답글 남기기

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

홈서버 IT 커뮤니티 SVRFORUM
Link