Let’s Encrypt 는 3억개의 웹사이트에 TLS 인증서를 제공하는 비영리 인증기관
Let’s Encrypt 이용하여 무료 ssl을 발급하는 방법에 대해서 설명한다
O/S : Centos 7.x 기준
인증서 발급은 총 4가지를 통해서 발급 받을수 있다
1. 명령어 기본 홈 디렉토리를 이용하는 방법 (수동으로 사용자가 구성)
2. nginx 또는 apache certbot python 을 이용하는 방법 ( 사이트 중단 및 설정 변경없이 바로 발급 )
3. dns a레코드를 이용하는 방법
1. 가장 먼저 certbot를 설치를 진행한다 / 바로 설치가 진행되지 않기 때문에 epel 설치 후 certbot 설치 진행
1 2 3 |
[root@localhost ~]# yum -y install epel-release [root@localhost ~]# yum -y install certbot |
2. 기본 명령어 한줄로 인증서를 발급 홈디렉토리가 존재해야 한다 즉 웹서버의 기본 80 사이트가 구축이 되어 있어야 한다
사이트명 : www5.xinet.kr
홈경로 : /home/www5.xinet.kr/html
1 |
[root@localhost ~]# certbot certonly --webroot --agree-tos -m jinsh82@gmail.com -w /home/www5.xinet.kr/html/ -d www5.xinet.kr |
–webroot : webroot 방식으로 인증 진행
–agree-tos : 약관 모두 동의
-m : 메일주소 입력 / 인증서 만료시 메일 회신주소
-w : 도메인 홈 경로 주소
-d : 도메인 주소 , 도메인을 여려거 발급하려면 계속
3. 인증서 확인
1 2 3 4 5 6 7 |
[root@localhost ~]# ls -l /etc/letsencrypt/live/www5.xinet.kr/ -rw-r--r-- 1 root root 692 9 12 16:03 README lrwxrwxrwx 1 root root 37 9 12 16:03 cert.pem -> ../../archive/www5.xinet.kr/cert1.pem lrwxrwxrwx 1 root root 38 9 12 16:03 chain.pem -> ../../archive/www5.xinet.kr/chain1.pem lrwxrwxrwx 1 root root 42 9 12 16:03 fullchain.pem -> ../../archive/www5.xinet.kr/fullchain1.pem lrwxrwxrwx 1 root root 40 9 12 16:03 privkey.pem -> ../../archive/www5.xinet.kr/privkey1.pem |
4. 인증서 웹서버에 등록
apache 구성 방법
1 2 3 4 5 6 7 8 |
<VirtualHost *:443> DocumentRoot /home/www5.xinet.kr/html ServerName www5.xinet.kr CustomLog logs/access_log combined SSLCertificateFile /etc/letsencrypt/live/www5.xinet.kr/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/www5.xinet.kr/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/www5.xinet.kr/chain.pem </VirtualHost> |
nginx 구성방법
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
server { server_name www5.xinet.kr; root /home/www5.xinet.kr/html; listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/www5.xinet.kr/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/www5.xinet.kr/privkey.pem; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = www5.xinet.kr) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name www5.xinet.kr; return 404; # managed by Certbot } |
웹페이지 확인 정상 출력
### apache 자동으로 구성하려면
1 |
yum -y install python3-certbot-apache.noarch |
인증서 생성
1 |
certbot --apache -d web207.xinet.kr |
자동으로 파일이 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@rocky8-web5 html]# cat /etc/httpd/conf.d/vhost-le-ssl.conf <IfModule mod_ssl.c> <VirtualHost *:443> DocumentRoot /home/xinet/html ServerName web207.xinet.kr ServerAlias web228.xinet.kr CustomLog logs/access_log combined SSLCertificateFile /etc/letsencrypt/live/web207.xinet.kr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/web207.xinet.kr/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule> |