GCP + CentOS6(VM) + nginx にSSL(certbot)入れちゃう

2020年09月01日

gcp Computeengine 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 stop git入れる sudo yum install git certbotをgit clone cd /usr/local sudo 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: なんかメール送るけどいい?みたいな質問なのでNO Please 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 start sudo service nginx reload sudo service nginx restart 起動した!! GCPのVMにてファイアウォールを設定 2020-09-01_01h01_43.jpg

接続確認

2020-09-01_02h29_53.jpg 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を復活させる(終わり)- 独自ドメインの設定 -


SaitoSystemService

埼玉在住のフリーランスSEです。 技術ブログや作品をここで紹介していきます。 よろしくお願いします。

Written by 齋藤 渓
埼玉在住のフリーランスSEです。技術ブログや作品をここで紹介していきます。よろしくお願いします。
Contact:
© 2020, 齋藤システムサービス by Gatsby