【学習用】最小コストでSSL証明書付きサイトを立ち上げる(お名前.com × GCP × Let's Encrypt × Zoho)


【学習用】最小コストでSSL証明書付きサイトを立ち上げる(お名前.com × GCP ×Zoho)

はじめに

この記事では学習を目的としたSSL証明書付きサイトの構築を最小コストで実現することを目的としています。
ただし、使用方法などによっては想定以上のコストがかかってしまうことが考えられますので、自己責任でお願いいたします。

##環境光構成
今回のサイト構築は以下の環境で行います。

対象 環境 費用(参考)
ドメイン お名前.com 1円 ※1年限定
メール Zoho Mail 0円
WEBサーバー Google Compute Engine 0円 ※使用上限あり
SSL証明書 Let's Encrypt 0円

お名前.comでドメインを取得

※ユーザ登録は割愛します
1.取得したいドメイン名を入力して検索します。

2.取得したいドメインにチェックを入れて、お申込みへ進む

3.サーバーは「利用しない」を選択して次へ
※サーバーを選択するとドメイン更新料が永久無料と謳われていますが、サーバーの更新料が発生するので1年1円でドメインのみが良いかと思います。
※以降の申し込みは割愛します。

Zohoでメールアドレスを取得(任意)

1.Zoho MailにアクセスしてFreeプランで新規登録

2.ご自身の情報を入力して登録する

3.設定したメールアドレスに届いた認証コードを入力
※認証コードが届くまで少し時間がかかります・・・

4.今すぐ追加する

5.お名前.comで取得したドメインを入力して追加する

6.ドメイン認証に進む

7.TXT値をコピーする

8.お名前.comにログインし、DNSレコードを設定する

9.ドメインを選択して次へ

10.DNSレコード設定を利用する

11.TYPEにTXTを選択、ZohoでコピーしたTXT値を入力して追加

12.DNSレコード設定用ネームサーバー変更確認にチェックを入れて確認画面へ進む
※以降の設定は割愛します。内容を確認して設定してください。

13.Zohoに戻ってTXTレコードの認証
※TXTレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。

14.任意のメールアドレスを作成する

15.グループの設定に進む

16.DNSの関連付けに進む

17.MXレコードをコピー、DNSに登録してMXレコードの認証
※MXレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。

18.SPFの設定に進む

19.SPFレコードをコピー、DNSに登録してSPFレコードの認証
※SPFレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。

20.DKIMの設定に進む

21.DKIMレコードをコピー、DNSに登録してDKIMレコードの認証
※DKIMレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。

22.メールの移行に進む

23.モバイル設定に進む

24.設定の完了に進む

25.設定完了

GCEでサーバを構築

1.Google Cloud Platformにアクセスし、無料で開始

2.ニーズを選択、利用規約に同意して続行

3.SMS認証

4.お支払方法を選択して無料トライアルを開始

5.コンピューティング>Compute Engine>VMインスタンスを選択

6.有効にする

7.VMインスタンスを作成
細かい設定値の説明は省略します。
外部IPアドレス名(任意)以外は基本同じにしていただければ大丈夫です。
詳細が知りたい方はお手数ですが別途お調べいただければと思います。










GCEにTeraTermで接続

こちらを参考にさせていただきました。
VMインスタンスの管理画面からSSH接続できるので必須ではありません。

Let's EncryptでSSH証明書を設定

1.nginxをインストール
yumを更新

sudo yum -y update

nginxをインストール

sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
sudo yum clean all
sudo yum repolist all
sudo yum install nginx

インストール確認

nginx -v

nginxを起動

sudo systemctl start nginx
systemctl status nginx
sudo systemctl enable nginx
systemctl is-enabled nginx

2.HTTP/HTTPSアクセスを有効にする

sudo firewall-cmd --permanent --add-service=http --zone=public
sudo firewall-cmd --permanent --add-service=https --zone=public
sudo firewall-cmd --reload

3.SElinuxを無効にする

sudo setenforce 0
sudo getenforce
sudo vi /etc/selinux/config

SELINUXの値をenforcingからdisabledに変更

4.certbotをインストールする

sudo yum install epel-release
sudo yum install certbot python2-certbot-nginx

5.お名前.comにDNSを登録する
AレコードにGCEの外部IPアドレスを設定

6.nginxの設定を行う
フォルダを作成する

sudo mkdir -p /var/www/html
sudo mkdir -p /var/www/letsencrypt

confを作成する

sudo vi /etc/nginx/conf.d/default.conf
server {
    listen 80;

    server_name [your domain];

    location ^~ /.well-known/acme-challenge/ {
        root /var/www/letsencrypt;
    }

    location / {
        root /var/www/html;
    }
}

ファイルをコピーする(任意のファイルを作成でもOK)

sudo cp -pR /usr/share/doc/HTML/* .

6.証明書を設定する
こちらのサイトなどでDNSが反映されていることを確認してから以下コマンドを実行

sudo certbot --nginx

内容に従って、ドメインやメールアドレスの入力。規約同意を実施

7.アクセスしてみる
https://[ご自身のドメイン]
ページが表示されていれば完了

あとはお好きにご利用ください!