본문 바로가기

AWS

ubuntu apache2 letsencrypt 적용방법

# letsencrypt 설치
sudo apt-get install letsencrypt
# 인증서 설치
# ACMEv1 프로토콜의 보안 문제로 ACMEv2를 적용하여야 인증서가 생성됨
sudo letsencrypt certonly --server https://acme-v02.api.letsencrypt.org/directory --webroot --webroot-path={webroot}
# 이메일 주소 입력 후 엔터

# SSL 모드 활성화
sudo a2enmod ssl

# Rewrite 활성화
sudo a2enmod rewrite

# SSL 설정
sudo vim /etc/apache2/sites-available/default-ssl.conf

# edit
DocumentRoot {webroot}
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/도메인/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/도메인/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/도메인/chain.pem
<Directory "{webroot}">
AllowOverride All
Require all granted
</Directory>
# quit

# 수정한 아파치 설정 복사
sudo cp -r /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/

# 80 => 443 Redirect
sudo vim /etc/apache2/sites-enabled/000-default.conf
# edit
RewriteEngine On
# 1. ELB를 쓰고 있을 경우
RewriteCond %{HTTP:X-Forwarded-Proto} =http
# 2. ELB를 쓰고 있지 않은 경우
RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

<Directory "{webroot}">
AllowOverride All
Require all granted
</Directory>
# quit
sudo service apache2 restart

# 인증서 재인증
sudo letsencrypt certonly --server https://acme-v02.api.letsencrypt.org/directory --webroot --webroot-path={webroot}