[ Server ][ Linux ] CentOS7 Let's Encrypt 무료 SSL인증서 설치 / 관리(확인) / 삭제
페이지 정보
작성자 웹지기 댓글 2건 조회 8,634회 작성일 19-10-31 13:36본문
※ 서버의 관리자 권한으로 접속해야 다음의 명령들이 실행이 가능해 진다.
certbot 설치
1) 자동설치) https://certbot.eff.org 사이트 접속해서 본인 서버의 운영체제를 체크하고 진행하게 도와준다.
= AAI에서는 기본 설치명령을 통해 python-certbot-apache가 자동으로 설치되므로 추가 설치는 필요치 않다.
= AAI에서 adduser.sh를 통해서 자동으로 ssl을 설치할 수 있지만, 1개의 계정에 1개의 ssl만 설치하는 구조이므로
여러개의 도메인 또는 서브도메인이 있다면 수동으로 설치를 해줘야 한다.
- 한개의 계정에 대한 명령(adduser.sh)로 자동설치 가능
= 수동설치
# certbot --apache -d domain.com -d www.domain.com
# 또는
# certbot certonly --webroot -w /home/계정명/public_html -d domain -d www.domain
= 여러개의 도메인 적용시 다음과 같이 사용
# certbot --apache -d domain.com,www.domain.com,domain2.com,www.domain2.com
또는
# certbot --apache -d domain.com -d www.domain.com -d domain2.com -d www.domain2.com
현재설치된 certbot 확인
# certbot certificates
certbot 자동 갱신
- 기본적으로 3달에 한번 갱신을 해줘야 하는데, AAI같은 경우 자동으로 갱신이 되도록 설정되었다.
( /etc/cron.daily/letsencrypt-renew 에 자동 설정 되어있슴 )
인증서 해지 ( https://certbot.eff.org/docs/using.html#revoking-certificates )
- 보안 사고 등으로 인해 비밀키가 유출되어 인증서를 교체하려는 경우, 기존인증서를 삭제하기전 해지(revoke)를 해주어야 안전.
# certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem
인증서 삭제
- 인증서파일과 ssl로 설정된 파일을 지워준다.
# certbot delete --cert-name example.com
# cd /etc/httpd/conf.d
# rm -rf username-le-ssl..conf
해당폴더에서 username-le-ssl.conf 파일 삭제 여부 확인
파일이 존재 할 시 다시 삭제
username.conf 파일내의 https관련 부분이 있다면 삭제
# systemctl restart httpd
댓글목록
장승원님의 댓글
장승원 작성일
도메인이 하나일때는 정상 작동하지만 도메인이 여러개일 경우 작동이 되지 않습니다.
아파치님께서 다음의 명령으로 진행하라고 하셔서 진행해볼 생각입니다.
# certbot certonly --webroot -w /home/$id/public_html -d domain -d www.domain 와 같은 방식 입니다.
장승원님의 댓글의 댓글
장승원 작성일
설치후 설정이 좀 필요하긴 하지만 정상 작동하네요
일단 이방법은 userid.conf 파일을 수정하지 않고 userid-le-ssl.conf 파일도 생성하지 않으므로 직접 넣어주어야 한다.
/etc/httpd/conf.d/userid.conf 파일에 VirtualHost 안쪽에 다음을 추가( http로들어와도 https로 리다이렉트)
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.domain.com [OR]
RewriteCond %{SERVER_NAME} =www.domain2.com [OR]
RewriteCond %{SERVER_NAME} =domain.com [OR]
RewriteCond %{SERVER_NAME} =domain2.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
/etc/httpd/conf.d/userid-le-ssl.conf 파일추가
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /home/userid/public_html
ServerName domain.domain.com
ServerAlias domain.com www.domain.com domain2.com www.domain2.com
<FilesMatch \.php$>
SetHandler proxy:fcgi://127.0.0.1:9072
</FilesMatch>
ErrorLog logs/domain.com-error_log
CustomLog logs/domain.com-access_log common
#SetEnvIFNoCase Referer newkoad.com link_allow
#<FilesMatch "\.(gif|jpg|jpeg|png|bmp)$">
# Order allow,deny
# allow from env=link_allow
# #deny from all
#</FilesMatch>
<Directory "/home/userid/public_html">
Options FollowSymLinks MultiViews
Allow from all
Require all granted
AllowOverride all
Order allow,deny
</Directory>
RewriteEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem
</VirtualHost>
</IfModule>
이렇게 추가하고 접속해보면 된다.