현재 운영중인 서버에 ssl 적용을 위해 여러가지를 알아보았다.
유료로 구입 후 적용하면 되겠지만 구입하지 않고 무료인 방법을 찾아서 적용하였고 해당 방법을 작성해 놓으려고 한다.
내가 사용한 것은 letsencrypt다.
OS : 18.04.2
Server : Apache
Port : 443 (기본포트)
1. git에서 프로젝트를 다운로드 한다. (우분투 경로 어디에서든 관계없음. 나의경우는 홈디렉토리에서 진행)
git clone https://github.com/letsencrypt/letsencrypt
2. let’s encrypt 프로젝트로 이동
cd letsencrypt
3. let’s encrypt를 실행하여 key 발급
– 이메일주소 : 기간이 만료될 때 메일로 알림이 온다.
– 사용할 도메인주소 : 구입한 도메인, 예를들어 : kkensu.com
sudo ./letsencrypt-auto certonly --manual --email [이메일 주소] -d [사용할 도메인주소]
– 필요한 피키지들은 자동으로 받으면서 진행됩니다. 그러면서 아래와 같이 물어보는곳이 나오는데 Agree / Yes / Yes 로 진행하면 Press Enter to Continue 라고 나옵니다. 이 때 엔터를 누르지 말고 잠시 대기해주세요.
4. 위의 그림과 같은 상태라면 터미널을 하나 더 연후에 아래의 내용을 기입
자신의 서버 root path로 이동 (예 : /var/www/html)
mkdir .well-known
cd .well-known
mkdir acme-challenge
cd acme-challenge
vi xBPfeQRolGtPOGZAPnWZSbHKGstVVMYMEjRwatrR16A
"xBPfeQRolGtPOGZAPnWZSbHKGstVVMYMEjRwatrR16A.ohbJQbVZH5eifXOo1Jw7wXBiTmGjQFnJP4DeyGRI8_k" 입력
큰따옴표는 빼놓고 입력을 했으면 저장 후 종료
5. 4번을 마쳤으면 원래의 터미널로 돌아와서 Enter를 눌러 다음으로 진행
6. 완료
– Congratulations! 라고 나오면서 마무리가 된다.
Press Enter to Continue
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/kkensu.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/kkensu.com/privkey.pem
Your cert will expire on 2019-05-23. To obtain a new or tweaked
version of this certificate in the future, simply run
letsencrypt-auto again. To non-interactively renew *all* of your
certificates, run "letsencrypt-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
7. /etc/letsencrypt/live/[도메인]/ 디렉토리 안에 pem키 4가지가 존재한다.
8. 아파치에 ssl 키 등록하기
– cd /etc/apache2/sites-available (디렉토리로 이동)
– sudo cp default-ssl.conf kkensu.com-ssl.conf (복사하기)
– sudo vi kkensu.com-ssl.conf
– 아래 내용 입력하여 파일 수정하기
<IfModule mod_ssl.c>
<VirtualHost *:443> <!-- https 연결이 되지 않는다면 * 부분에 아이피를 넣어준다. x.x.x.x:443 -->
ServerAdmin kkensu@gmail.com
ServerName kkensu.com
ServerAlias kkensu.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/kkensu.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/kkensu.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/kkensu.com/chain.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
9. kkensu.com 도메인 enable 설정하기
sudo a2enmod ssl <!-- ssl을 사용하겠다고 명시해주는 것 -->
sudo a2ensite kkensu.com-ssl.conf
10. 아파치 재기동
sudo service apache2 restart
11. http로 접속하면 https로 이동하도록 Redirect 걸기
<VirtualHost *:80>
ServerName kkensu.com
DocumentRoot /var/www/test
Redirect permanent / https://kkensu.com/
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>
12. 끝!