GCP managed SSL(β판)을 이용한 https 서버 구축

최근 몇 년간 AWS 환경의 안건 뿐이었지만 최근 GCP 안건에 종사할 기회가 늘어나고,
GCP 공부하면서 대응하고 있다.

이 기사에서는, 독자 도메인으로 http/https를 받아들일 수 있는 「웹 서버+LB」의 환경 구축의 방법을
가능한 한 일반화된 예로 비망한다.

만드는 환경에 대해



만드는 환경의 이미지도는 이하.

(이미지는여기 보다 배차)

그 외, 흔한 리디렉션 룰의 설정을 한다.

-https://独自ドメイン 는 https 인증서 OK로 웹 컨텐츠를 표시한다
- http://独自ドメイン는 https URL로 리디렉션합니다.
- http(s)://www.独自ドメイン는 https URL로 리디렉션합니다.

이용한 GCP 서비스


  • 인스턴스: GCE
  • 로드 밸런서: HTTP(S) Load Balancing Concepts
  • 인증서 관리: Google-managed SSL certificates
  • DNS 관리: CloudDNS

  • STEP1. GCE 인스턴스 구축



    기본 Debian9 이미지를 선택하여 nginx 서버를 설정합니다.
    방화벽은 http 액세스는 글로벌로부터 액세스할 수 있도록 체크해 둔다.
    # nginxインストール・自動起動設定・起動
    $ sudo apt-get install nginx
    $ sudo /lib/systemd/systemd-sysv-install enable nginx
    $ sudo nginx
    

    이름 .com에서 1 엔으로 판매중인 ".work"도메인으로 검증.
    도메인은 koshilife.work이었다. nginx 설정으로 다음 파일을 만듭니다.
  • 설정 내용 :
  • server_name에 해당하지 않는 것은 요청을 반환하지 않습니다 참고 기사
  • www 요청하지 않고 https가 아닌 http 요청은 https URL로 리디렉션합니다.
  • www 요청은 www 무에 리디렉션한다.


  • /etc/nginx/conf.d/koshilife-work.conf
    server {
       listen       80 default_server;
       server_name  _;
       return       444;
    }
    
    server {
      listen 80;
      server_name koshilife.work;
      root /var/www/public_html;
    
      if ($http_x_forwarded_proto = 'http') {
        return 301 https://$server_name$request_uri;
      }
    }
    
    server {
      listen 80;
      server_name www.koshilife.work;
      return 301 https://koshilife.work$request_uri;
    }
    

    STEP2. 인스턴스 그룹 만들기



    간단한 검증 목적이므로 「Single zone/비매니지드 인스턴스 그룹」으로 작성해,
    STEP1에서 작성한 인스턴스를 묶었다.



    STEP3. LB 만들기



    GCP 콘솔의 [부하 분산] 설정 화면에서 새로 만들기를 선택하고 [HTTP(S) 부하 분산]을 선택하고,
    거친 설정 내용은 이하.
  • 백엔드 서비스 설정
  • STEP2에서 작성한 「인스턴스 그룹」을 지정해, 디폴트치를 선택해 진행한다.
  • 상태 확인 설정도 새로 만들고 기본값으로 만들었습니다.

  • 호스트 및 경로 규칙 설정 : 설정없이 확인
  • 프런트 엔드 설정
  • http:
    ※IP주소 설정 풀다운으로 「에페메랄」의 그대로라면, https 통신시와 같은 IP로의 설정을 할 수 없기 때문에 주의. 빠진 포인트. IP 주소 만들기를 선택합니다.
  • https:
    ※SSL 증명서는 google managed를 선택했다(이 시점에서 베타판). 9개까지 증명서를 지정할 수 있지만, 이번에는 2개의 SSL 증명서를 작성했다.


  • STEP4. DNS의 A 레코드를 갱신한다.



    STEP3에서 발행한 SSL 증명서가 유효하게 되는 조건에 증명서로 지정한 도메인의 이름 해석을 했을 때
    LB의 IP가 연주하는 것이 활성화 조건에 포함되기 때문에 DNS 영역 정보를 갱신한다.

    업데이트 이미지:


    STEP5. 인증서 활성화 대기



    SSL 인증서가 유효해질 때까지 30분 정도 기다린다.
  • LB 작성 후 상태에서는 인증서 상태가 유효하지 않습니다.
  • 20분 정도로 증명서가 액티브하게 바뀌었다.
  • 도메인에 액세스하고 리디렉션 설정, https 키 표시가 잘못되면 끝.

  • 참고 기사


  • GCP의 HTTP 로드 밸런서용 관리형 SSL 인증서가 출시되었으므로 시도했습니다.
  • 명령줄에서 GCP Autoscaler(GCE+GCLB) 설정
  • HTTP Load Balancer를 사용하여 Host 이름과 URI로 연결되는 인스턴스(그룹) 간 전환
  • 【AWS 밖에 한 적이없는 사람들을위한】 AWS와 GCP 네트워크의 차이점을 이해합시다.
  • 좋은 웹페이지 즐겨찾기