応用EC 2ドメイン接続+HTTPS


ガビアからドメインを購入

1.ドメイン接続-Nginxのインストール


コメントリンク
[Nginx]NginxとSpringBoot統合Tomcat統合
現在のプロジェクトでは、GithubActionを使用してci/cdを事前に構築し、/home/ubuntu/deployでspringブートjarファイルを実行しています.

インストールNginx

#nginx 설치
sudo apt-get install nginx

#nginx 실행
sudo service nginx start

#---------이외 명령어--------
#상태확인
sudo service nginx status 
#중지
sudo service nginx stop
#재시작
sudo service nginx restart
#설정 다시 반영
sudo service nginx reload

Nginx運転の確認

  • が自分のip:80に入ると、Welcome to Nginxは
  • に成功したことを示します.

    nginx.確認conf

  • nginx.confはNginxのプライマリファイルです./etc/nginxパスにあります.
  • #conf 파일이 있는 곳으로 이동
    cd /etc/nginx
    
    #nginx.conf 확인
    cat nginx.conf

    confファイル-httpブロックにコンテンツが存在します
    sitesで有効なディレクトリのファイルを変更する必要があります.
    →理由は参考のブログを参照してください.
    簡単に言えば、confファイルにはサイトが有効なフォルダ内のファイルが含まれているからです.

    sites-availableの設定ファイルの作成と適用

    #디렉토리 이동
    cd /etc/nginx/sites-available
    #새롭게 적용시킬 conf 파일 생성
    sudo vi test.conf

    test.conf

    server {
        listen 80;
        listen [::]:80;
    
        server_name 구매한 도메인명; 
    
        location / {
             proxy_pass http://localhost:9000;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header Host $http_host;
        }
    }
  • server name:購入したドメイン名または未購入のlocalhostを入力
  • proxy pass http://localhost:{port}:locationの下のコマンド列で起動するポート番号.現在、プロジェクトサーバポートは9000なので、9000に指定されています.

  • テストurlを入力すると、成功した場合に確認できます.

    sites-有効なシンボルリンクの作成

  • サイト-使用可能なディレクトリにテストされました.新しいconfファイルが作成されているため、接続が必要です.
  • #심볼릭 링크 연결
    sudo ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled
    
    # 연결 목록 확인
    cd /etc/nginx/sites-enabled
    ls -l
    
    # default 연결을 끊어줘야 test.conf 사용이 가능하다.
    sudo rm default
    
    # default 파일을 삭제한게 아니라 연결을 끊은거여서 
    #sites-available 디렉토리에 보면 default 파일은 존재함!
    #만약 망했다 싶으면 test.conf 연결 지우고 default로 다시 연결시켜주면 됨
    
    #nginx 재구동 및 확인
    sudo service restart 
    또는
    sudo service reload
    
    #구매한 도메인/test url 로 입력했을 때 출력 값이 제대로 나오면 성공
    
    #안될 시 확인해볼 것
    1. ec2 인바운드 설정 확인
    2. 리다이렉트하는 포트번호 제대로 설정했는지 확인
    3. root 프로젝트 위치를 지정하는 방법도 있는데 다른 글을 보고 참고하면 좋을듯...

    2.サブドメインの設定


    リファレンスリンク
    [Nginx][EC 2]ドメイン接続、httpsの適用、サブドメインの設定
    ガビア→Myガビア→DNS管理ツール
  • 青はドメイン、黒はipアドレス
  • サブドメインの場合は、CNAMEタイプに設定する必要があります.
  • の値/場所のドメイン名の後ろにあります.貼り付けます.
  • ec 2サブドメインの適用

    cd /etc/sites-enabled
    
    sudo vi test.conf
    test.confファイル→server nameを変更します.
    server {
        listen 80;
        listen [::]:80;
    
        server_name teamplanz.shop; 
    
        location / {
             proxy_pass http://localhost:9000;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header Host $http_host;
        }
    }
    sudo service nginx restart
    
    sudo service nginx status
    서버 돌아가는 지 확인

    urlを止めたけど成功!

    3.HTTPSの適用


    コメントリンク
    LetsEncryptのインストール
    [Nginx][EC 2]ドメイン接続、httpsの適用、サブドメインの設定

    ※開始前の注意事項

  • ec 2インバウンドでhttpsが開いていることを確認!!
  • Certbotのインストール

    #certbot 설치
    sudo snap install certbot --classic

    SSL証明書の発行(独立)


  • 証明書の発行方式には独立とwebroot方式があります.

  • スタンドアロンモードでは、証明書を発行する前にWebサーバを閉じる必要があります.
    その利点は,サブドメインに適用できることである.

  • Webroot方式は最初のブログに整理されており、必要に応じて直接使用すればよい.

  • **表示されるコマンドの入力
  • 
    #standalone 방식 사용할거기 때문에 nginx 잠시 꺼줘야 한다.
    sudo service nginx stop
    
    sudo certbot certonly --standalone      
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Enter email address (used for urgent renewal and security notices)
     **(Enter 'c' to cancel):  (자기 이메일 적기)**
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    생략
    agree in order to register with the ACME server. Do you agree?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    **(Y)es/(N)o: Y <- ACME 약관에 동의하는지 N선택시 진행불가**
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    생략
    EFF news, campaigns, and ways to support digital freedom.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    (Y)es/(N)o: N <- 이메일을 통해 Let's Encrypt 프로젝트 정보를 받아볼지
    
    Please enter in your domain name(s) (comma and/or space separated)
    (Enter 'c' to cancel): 도메인1 도메인2  <- {1} 인증서를 발급할 도메인 입력
    Requesting a certificate for vompressor.com and www.vompressor.com
    
    IMPORTANT NOTES:
     - Congratulations! Your certificate and chain have been saved at:
       /etc/letsencrypt/live/도메인명/fullchain.pem <- {2} 발급된 인증서 경로
       Your key file has been saved at:
       /etc/letsencrypt/live/도메인명/privkey.pem <- {2} 발급된 인증서 경로
       Your certificate will expire on 2021-05-16.
       
       생략
      
     #SSL 인증서 발급 끝나면 다시 nginx 시작해주기
     sudo service nginx start
     #정상 실행 됐는지 확인
     sudo service nginx status
     
     
     #필수는 아님
     cd /etc/nginx/sites-enabled
     vi test.conf
     #conf 파일 확인해보면 자동으로 443포트 연결해준거를 볼 수 있다.
    

  • 入力以外の内容は省略しました.

  • <-{1}複数のドメインの証明書を取得する場合は、セパレータを使用してドメインを作成できます.

  • この場合sites-enabledで作成したドメインに記入するだけです!
    現在のプロジェクトでは、confファイルにdevサブドメインのみが作成されます.
    Dev.ドメイン名のみでSSL証明書を受け取りました!
  • 証明書の削除

  • 削除しましたが、ポートが開いていないので接続できません.
  • ポート独立アプリケーションを開いている場合、すぐに適用されますか?
  • #만약 위에 설치했는데 적용안되면 인증서 삭제 후 다시 발급
    #인증서 이름은 도메인명 적으면 된다.
    certbot revoke --cert-name {인증서 이름}
    
    #SSL 발급받은 도메인 확인하고 싶은 경우
    cd /etc/letsencrypt/
    
    #live 디렉토리는 sudo 권한만 들어갈 수 있음
    sudo su
    cd live
    ls
    #여기에 발급받은 도메인들 있을텐데 certbot revoke 명령어로 지워주면 된다.

    証明書-2の発行


    2つ目の方法...
    sudo certbot --nginx -d domain.com -d www.domain.com
    
    #-d로 구분해서 도메인 여러개 지정해줄 수 있다. 
  • 命令、上のような文は2と言います!
  • 2号を適用して、httpsで自動的にリダイレクトすることができます!
  • 注意事項を再整理する

  • プロジェクトでテストするapiを作成してください!!
  • ポートを開けろ!
  • の注意事項ではありませんが、他のサブドメインに接続されている場合は、httpsを適用するには証明書発行コマンドを使用する必要があります.