본문 바로가기

IT이야기/Linux

[certbot] 무료 SSL 인증서 적용하기


요즘 구글 클라우드 플랫폼을 이용하여 인스턴스를 하나 생성해서 이것저것 설치도 해보고 설정을 해보고 있다.
http를 https로 적용하고 싶어서 그런것들을 찾아보는 와중에 쉽게 설명되있는 글을 발견해서 포스팅해 놓는다. 

오픈튜토리얼스 HTTPS와 SSL 인증서
https://opentutorials.org/course/1334/4894

HTTP vs HTTPS
HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. 
HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP라는 것을 짐작할 수 있다. 
HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우 쉽다. 
예를들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다는 것이다. 
이를 보안한 것이 HTTPS다.

HTTPS와 SSL
HTTPS와 SSL를 같은 의미로 이해하고 있는 경우가 많다. 이것은 맞기도 틀리기도 하다. 
그것은 마치 인터넷과 웹을 같은 의미로 이해하는 것과 같다. 
결론적으로 말하면 웹이 인터넷 위에서 돌아가는 서비스 중의 하나인 것처럼 HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜이다.

...............중략....



이것만 써놓으면 내 포스팅이 아니지
난 여기서 추가로 다른 걸 써보았다. 
StartCom 인증서가 신뢰도 이슈가 있다고 하여 certbot을 추천하는 댓글이 있어서 certbot 인증서를 설치하는 방법을 설명해보고자 한다.

환경은 centOS7이고 apache에 certbot을 설치하는 방법이다. 

yum install certbot

cd /home/user7/apache24           //user7은 유저명.. 
mkdir sslkey
cd sslkey
vi renewssl.sh                           //New File 내용은 아래에..
vi ssl_user7.sh                          //New File 내용은 아래에..
chmod 755 *

./ssl_user7.sh                           //실행. 만료전 알림받을 이메일. A. Y

cd /home/user7/apache24/conf/extra
httpd-ssl.conf                         //수정해야함. 수정할 내용은 아래에 .. 

인증서는 3개월뒤 만료니 갱신해야함
./renewssl.sh                         //갱신할때 실행하기만 하면 됨.. 


renewssl.sh 내용
certbot renew --no-self-upgrade --config-dir /home/user7/apache24/sslkey/certfs/configdir --work-dir /home/user7/apache24/sslkey/certfs/workdir --logs-dir /home/user7/apache24/sslkey/certfs/logsdir

ssl_user7.sh 내용
certbot certonly --config-dir /home/user7/apache24/sslkey/certfs/configdir --work-dir /home/user7/apache24/sslkey/certfs/workdir --logs-dir /home/user7/apache24/sslkey/certfs/logsdir --webroot -w /home/user7/apache24/htdocs -d domain.com -d www.domain.com


httpd-ssl.conf 수정한 내용 
SSLEngine on
SSLCertificateFile "/home/user7/apache24/sslkey/certfs/configdir/live/domain.com/cert.pem"
SSLCertificateKeyFile "/home/user7/apache24/sslkey/certfs/configdir/live/domain.com/privkey.pem"
SSLCertificateChainFile "/home/user7/apache24/sslkey/certfs/configdir/live/domain.com/chain.pem"