LoginSignup
0
0

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-08-31

今回やること

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0