도메인 발급

  1. 가비아에서 도메인 구매 (traveline.store)

  2. 가비아는 도메인 구매 시 네임서버 비용을 제공

    네임서버로 가비아 등록

SSL 인증서 발급

참고 블로그

  1. nginx 설치

  2. certbot 설치

  3. SSL 인증서 생성

    1. nginx 포트 https 포트(443)로 변경

      우분투 20.04 기준 설정파일 위치

      참고 블로그

      vi /etc/nginx/sites-enabled/default
      

      설정 변경 후 nginx 재시작 필요

      systemctl restart nginx
      

      Untitled

      • 원인

        설정파일에서 default server conf와 virtual host conf 두 가지 파트가 있는데, default server conf의 포트를 변경해야 하는 것을 virtual host conf의 포트를 변경해서 문제가 발생

        default server conf의 포트를 변경 후 재시작하니 정상 실행됨

        • /etc/nginx/sites-enabled/default 내용
    2. 인증서 발급

      certbot certonly --standalone -d traveline.store -d www.traveline.store
      

      Untitled

    3. nginx 재시작

  4. nginx 설정파일에 인증서 정보 등록

    1. nginx 설정파일 수정

      cd /etc/nginx/sites-available 
      vi default
      

      $ 표시 환경변수는 nginx의 변수라고 하니 신경 쓸 필요 없다. ($host 등)

      Untitled

      Untitled

    2. nginx 리로드

      nginx -t 
      nginx -s reload
      

      dhparams.pem이 존재하지 않는다는 에러 발생

      참고 블로그

      참고 블로그

      1. openssl 설치

        apt install openssl
        
      2. dhparam 생성

        openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
        

        2048 = 디피 헬만 암호화 비트 수

    이 과정을 전부 거쳤는데도 안돼서 다른 방법을 찾아 헤맸다…

    인증서 발급 단계부터 아래 링크를 보고 따라하였다. (플러그인을 사용하니 위의 과정을 전부 알아서 해결해주었다.)

    Untitled

  5. https 접속 되는지 확인

    http 접속 시 리다이렉트 된다. (플러그인으로 생성 과정에서 물어봐준다!)

  6. 쉘 스크립트를 이용해 인증서 재발급 코드 작성

    이것도 플러그인 덕에 해결 (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')()
        )
    

Nginx와 API 서버 연결 후 배포

참고 블로그 1

참고 블로그 2

  1. docker compose 설치
  2. nginx 설정파일 작성
  3. nginx dockerfile 작성 후 이미지 빌드