GCP + CentOS6 (VM) + nginx에 SSL (certbot)을 추가합니다.

이번에 할 일



GCP + CentOS6 (VM) + nginx에 SSL을 넣고 https에 연결해 봅시다.

정보 수집



GCP에서 Let's Encrypt하여 SSL(TLS) 표시
GCP에서 Let's encrypt로 SSL(TLS) 자동 업데이트
Let's Encrypt로 Nginx에 SSL 설정
Nginx에서 요청을 강제로 https (TLS)로 리디렉션
HTTP > HTTPS로 리디렉션 설정 후 NGINX가 리디렉션을 반복하는 문제에 대응
certbot 넣어 ssl을 취득해, nginx로 설정하는군요.

certbot 넣어 버리는



gcp에 ssh로 연결
우선 nginx 정지sudo service nginx stopgit 넣기sudo yum install gitcertbot을 git clonecd /usr/localsudo git clone https://github.com/certbot/certbot.git

SSL 인증서 취득



다음 실행cd /usr/local/certbot./certbot-auto certonly --standalone -t그 후 다음 입력 확인Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel):이메일 주소 입력(A)gree/(C)ancel:아그리!(Y)es/(N)o:뭔가 이메일을 보내는 것이 좋습니까? 같은 질문이므로 NOPlease enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel):도메인 이름 입력 (도메인 이름과 www. 도메인 이름을 입력 공간으로 구분)
할 수있는 것 같습니다. . .

nginx 설정



아래 수정은/etc/nginx/conf.d/에서 default.conf를 수정할 수 있습니다.
다른 conf로 작성해도 문제 없다고 생각합니다.
나는/etc/nginx/conf.d/에있는 기존 파일을 백업하여 도메인 이름의 conf 파일을 만들었습니다.
cd /etc/nginx/conf.d
sudo mv default.conf default.conf.org
sudo mv ssl.conf ssl.conf.org
sudo mv virtual.conf virtual.conf.org
sudo cp default.conf.org ドメイン名.conf

만든 도메인 이름 .conf를 다음과 같이 수정했습니다.
server {
    listen      80;
    server_name ドメイン名;
    return 301 https://ドメイン名$request_uri;
    ※リダイレクト
}
server {
    listen      80;
    listen      443;
    server_name www.ドメイン名;
    return 301 https://ドメイン名$request_uri;
    ※リダイレクト
}

server {
    listen              443 ssl default_server;
    listen              [::]:443 ssl;
    server_name         ドメイン名;
    ssl_protocols       TLSv1.1 TLSv1.2;
    ssl_certificate     /etc/letsencrypt/live/ドメイン名/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ドメイン名/privkey.pem;
    (中略)
}

nginx.conf의 로드 파일 수정
    #include /etc/nginx/conf.d/*.conf;コメントアウト
    include /etc/nginx/conf.d/ドメイン名.conf;

nginx 시작sudo service nginx startsudo service nginx reloadsudo service nginx restart시작했다! !
GCP VM에서 방화벽 설정


연결 확인




http도 https도 www도 접속할 수 있었다!


certbot 자동 업데이트 설정



cron에 다음을 설정crontab -e
0 4 1 * * root /usr/local/certbot/certbot-auto renew --post-hook "service nginx restart"

잘 움직이거나 오늘 확인할 수 있을 것 같다.
하지만 졸려서 쉬세요.

지금까지의 작업



GCP 부활의 작업 내역
방치하고 있던 GCP를 부활시킨다 (1) - 프로젝트 작성 -
방치한 GCP를 부활시킨다 (2) - VM 인스턴스 생성 -
방치한 GCP를 부활시킨다 (3) - gcloud CLI 설치 -
방치하고 있던 GCP를 부활시킨다 (4) - PC(Windows10)로부터 VM에 ssh 접속 -
방치한 GCP를 부활시킨다 (5) - VM의 IP를 고정한다 -
방치한 GCP를 부활시킨다 (6) - nginx 설치와 http 설정 -
방치한 GCP를 부활시킨다(마지막) - 고유 도메인 설정 -

좋은 웹페이지 즐겨찾기