가비아에서 도메인 구매 (traveline.store)
가비아는 도메인 구매 시 네임서버 비용을 제공
네임서버로 가비아 등록
nginx 설치
certbot 설치
SSL 인증서 생성
nginx 포트 https 포트(443)로 변경
우분투 20.04 기준 설정파일 위치
vi /etc/nginx/sites-enabled/default
설정 변경 후 nginx 재시작 필요
systemctl restart nginx
원인
설정파일에서 default server conf와 virtual host conf 두 가지 파트가 있는데, default server conf의 포트를 변경해야 하는 것을 virtual host conf의 포트를 변경해서 문제가 발생
default server conf의 포트를 변경 후 재시작하니 정상 실행됨
/etc/nginx/sites-enabled/default
내용인증서 발급
certbot certonly --standalone -d traveline.store -d www.traveline.store
nginx 재시작
nginx 설정파일에 인증서 정보 등록
nginx 설정파일 수정
cd /etc/nginx/sites-available
vi default
$ 표시 환경변수는 nginx의 변수라고 하니 신경 쓸 필요 없다. ($host 등)
nginx 리로드
nginx -t
nginx -s reload
dhparams.pem이 존재하지 않는다는 에러 발생
openssl 설치
apt install openssl
dhparam 생성
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
2048 = 디피 헬만 암호화 비트 수
이 과정을 전부 거쳤는데도 안돼서 다른 방법을 찾아 헤맸다…
인증서 발급 단계부터 아래 링크를 보고 따라하였다. (플러그인을 사용하니 위의 과정을 전부 알아서 해결해주었다.)
https 접속 되는지 확인
http 접속 시 리다이렉트 된다. (플러그인으로 생성 과정에서 물어봐준다!)
쉘 스크립트를 이용해 인증서 재발급 코드 작성
이것도 플러그인 덕에 해결 (certbot 쉘 스크립트)
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'certbot==0.40.0','console_scripts','certbot'
__requires__ = 'certbot==0.40.0'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\\.pyw?|\\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('certbot==0.40.0', 'console_scripts', 'certbot')()
)