본문 바로가기

main/Server

[CentOS 7] https, SSL인증서 적용

무료 SSL 인증서 Let's Encrypt를 사용했다. 이 인증서는 무료라서 3개월마다 재갱신을 해주어야 한다고 함.

 

설정파일 설치, 내 도메인의 인증서 발급

yum install epel-release
yum install python-certbot-apache
yum install mod_ssl

certbot --authenticator standalone --installer apache 
-d domain -d domain
--pre-hook "systemctl stop httpd" 
--post-hook "systemctl start httpd"

domain 부분에 domain주소를 입력해준다.

 

 

httpd.conf 파일에 VirtualHost 설정

Listen 80
Listen 443

Include conf.modules.d/*.conf
Include /etc/letsencrypt/options-ssl-apache.conf

SSLCertificateFile /etc/letsencrypt/live/domain/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/domain/chain.pem

<VirtualHost _default_:443>
  ServerName ...
  ServerAlias ...

  ErrorLog logs/443_error_log
  CustomLog logs/443_access_log common

  SSLEngine On
  
  <Proxy *>
    Order deny,allow
    Allow from all
  </Proxy>
  ProxyPass / http://...:8080/
  ProxyPassReverse / http://...:8080/
</VirtualHost>

<VirtualHost *:80>
  ServerName ...
  ServerAlias ...
  
  RewriteEngine On
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URL} [R=301,L]
</VirtualHost>

apache 웹 기본 포트가 80이므로 유저가 https://를 입력하지 않는다면 80으로 접속할 것이고 http://로 접속될 것이다.

때문에 RewriteEngine을 통해 http -> https 로 리다이렉트 시켜준다.

이 RewriteEngine은 <Directory> 설정에서 AllowOverride All 으로 설정해주어야한다.

AllowOverride None이면 권한이 없어서 rewrite시키지 못하고 500 server error가 뜬다.

 

그러면 이제 https://로 잘 접속하게 되었을 때 Proxy를 통해 서버가 띄워져있는 포트를 보내준다.

 

 

Rewrite, VirtualHost 이거 설정하는데 진짜 삽질 많이하고 시간 오래 걸렸음..

다른 블로그 글 왕창 보면서 되게 쉽게쉽게 써놨는데 왜 난 안되지... 했지만

하나하나 해나가니 결국 코드 이해도 되고 작동도 되긴 되었다.

 

 

그래도 산 넘어 산

 


아, SSL 적용 확인할 때

 

SSL Server Test (Powered by Qualys SSL Labs)

SSL Server Test This free online service performs a deep analysis of the configuration of any SSL web server on the public Internet. Please note that the information you submit here is used only to provide you the service. We don't use the domain names or

www.ssllabs.com

요런 사이트를 이용해볼 수도 있다.