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

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

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

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

| 対象 | 環境 | 費用（参考） |
| ---- | ---- | ---- |
| ドメイン | [お名前.com](https://www.onamae.com/) | 1円 ※1年限定 |
| メール | [Zoho Mail](https://www.zoho.com/jp/mail/) | 0円 |
| WEBサーバー | [Google Compute Engine](https://cloud.google.com/compute) | 0円 ※使用上限あり |
| SSL証明書 | Let's Encrypt | 0円 |

## お名前.comでドメインを取得
※ユーザ登録は割愛します
**１．取得したいドメイン名を入力して検索します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/5f408b59-3d46-94a6-dcff-e4c5101c53e4.png)

**２．取得したいドメインにチェックを入れて、お申込みへ進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/0b70bab6-97f6-0de2-31cc-90e5e226c4b5.png)

**３．サーバーは「利用しない」を選択して次へ**
※サーバーを選択するとドメイン更新料が永久無料と謳われていますが、サーバーの更新料が発生するので1年1円でドメインのみが良いかと思います。
※以降の申し込みは割愛します。
![cart.onamae.com_register_order_rs_view=top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/df1eb704-04d4-4d7d-6cf2-40647d04913f.png)

## Zohoでメールアドレスを取得（任意）
**１．[Zoho Mail](https://www.zoho.com/jp/mail/zohomail-pricing.html)にアクセスしてFreeプランで新規登録**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/18b3c7d7-ec7d-6e24-f97c-8049de41da70.png)

**２．ご自身の情報を入力して登録する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/04bad206-77e1-1eea-95da-d6943580fdae.png)

**３．設定したメールアドレスに届いた認証コードを入力**
※認証コードが届くまで少し時間がかかります・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/72579eb2-fdbb-2017-fbe7-514189dc4049.png)

**４．今すぐ追加する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/64bfe13f-866b-02f7-89f1-656bea318758.png)

**５．お名前.comで取得したドメインを入力して追加する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/67d1250d-5edc-4d25-5a16-23d3a6ffdc8c.png)

**６．ドメイン認証に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/0ad59bb9-f307-5c0a-c585-5e4f3676c999.png)

**７．TXT値をコピーする**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/de4204b6-1cc1-4a74-f053-979501325314.png)

**８．お名前.comにログインし、DNSレコードを設定する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/24ef9b71-0b1d-2404-59e4-175598678a77.png)

**９．ドメインを選択して次へ**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/f8e662a9-1573-5992-aa73-b66ecc798bef.png)

**１０．DNSレコード設定を利用する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/693b9a60-531e-b147-bdec-fca754d77c29.png)

**１１．TYPEにTXTを選択、ZohoでコピーしたTXT値を入力して追加**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/cc75732c-ca6d-1b68-347c-ac142ab8fbd9.png)

**１２．DNSレコード設定用ネームサーバー変更確認にチェックを入れて確認画面へ進む**
※以降の設定は割愛します。内容を確認して設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/02f55e96-21e3-1715-f0ed-3e2126e345f2.png)

**１３．Zohoに戻ってTXTレコードの認証**
※TXTレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/de4204b6-1cc1-4a74-f053-979501325314.png)

**１４．任意のメールアドレスを作成する**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/69e75feb-67f5-7eb8-2bf8-07d897a14cd4.png)

**１５．グループの設定に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/9660f58a-3c90-8acb-72e4-ee1b318c3ba9.png)

**１６．DNSの関連付けに進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/529a80e3-cf18-fe05-6b93-377183fe87e7.png)

**１７．MXレコードをコピー、DNSに登録してMXレコードの認証**
※MXレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/5ad869af-4b42-1b4f-4e8f-25ec3a3392f9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/30660789-5590-e434-8d49-9762508598b6.png)

**１８．SPFの設定に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/134b115e-27c8-9079-cba6-77896e01072e.png)

**１９．SPFレコードをコピー、DNSに登録してSPFレコードの認証**
※SPFレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/8b008f6b-6ed7-d751-bc18-63499d226435.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/693afbb1-f4ab-d377-cbc2-0b56b61726f0.png)

**２０．DKIMの設定に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/429b1866-dec1-0116-efdf-fce596ea5d5e.png)

**２１．DKIMレコードをコピー、DNSに登録してDKIMレコードの認証**
※DKIMレコードの反映に時間がかかる場合があります。認証エラーとなる場合は少し時間を空けて再度お試しください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/14d9be1c-f3a9-b0db-3edd-0ee35f8944e6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/dee8074d-cb08-affa-0645-6587c43e55f3.png)

**２２．メールの移行に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/bdd35944-8d0d-81a2-dfed-ae8e11c398f1.png)

**２３．モバイル設定に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/84b303b3-88ed-60fc-e3e6-00948c2cc98c.png)

**２４．設定の完了に進む**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/451c2042-50e4-1ae6-d6a9-d493be971503.png)

**２５．設定完了**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/0a0ea738-1fce-d206-d58f-1c2cd8218521.png)

## GCEでサーバを構築
**１．[Google Cloud Platform](https://cloud.google.com/gcp/)にアクセスし、無料で開始**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/24b3aaa7-809c-3c85-abcc-11fe34073d47.png)

**２．ニーズを選択、利用規約に同意して続行**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/7322c6ad-816a-3932-b17a-8b9b86d3b0ed.png)

**３．SMS認証**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/5ded691e-7f0b-a95d-2674-731846e8ec59.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/e4fd1ebd-64c1-ef6c-8360-57410434fae7.png)

**４．お支払方法を選択して無料トライアルを開始**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/9800f587-dac0-b410-bc60-4e087a316140.png)

**５．コンピューティング＞Compute Engine＞VMインスタンスを選択**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/85daa60a-8946-374f-cba2-3137801a856a.png)

**６．有効にする**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/ec26838f-edde-9f88-b811-ace39910e2e2.png)

**７．VMインスタンスを作成**
細かい設定値の説明は省略します。
外部IPアドレス名（任意）以外は基本同じにしていただければ大丈夫です。
詳細が知りたい方はお手数ですが別途お調べいただければと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/689b85ec-c741-fa04-c109-ef16dcbdcf7a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/aa53a799-b919-5124-560f-f5d199aef323.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/6288760b-65b7-b5c9-3e8e-6703a5b2a588.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/30955947-ad80-ef11-34c5-824c4d05ff3e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/555870f7-aa98-ecf6-837f-9968108a386a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/8cd50d78-5b37-4f1b-1118-d63b655d89b8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/813cef00-fcad-e867-c6e1-44587761a009.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/c02403a0-be85-ddf6-9694-37f8023ad411.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/3aa1d303-0f06-65a6-7ca0-a523c721d47d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/8e506896-d6a7-e70b-f311-cbcde03e3446.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/ae3cac2b-f57a-3ba1-33b3-ce1724f54fc0.png)

## GCEにTeraTermで接続
[こちら](https://sbc-web.hatenablog.jp/entry/2017/05/03/Tera_Term%E3%81%A7SSH%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6GCE%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%99%E3%82%8B)を参考にさせていただきました。
VMインスタンスの管理画面からSSH接続できるので必須ではありません。

## Let's EncryptでSSH証明書を設定
**１．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
```

**２．HTTP/HTTPSアクセスを有効にする**

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

**３．SElinuxを無効にする**

```
sudo setenforce 0
sudo getenforce
sudo vi /etc/selinux/config
```
SELINUXの値をenforcingからdisabledに変更

**４．certbotをインストールする**

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

**５．お名前.comにDNSを登録する**
AレコードにGCEの外部IPアドレスを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218788/68f6b578-2f13-23ad-79b4-d73d85cd885f.png)

**６．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/* .
```

**６．証明書を設定する**
[こちら](https://www.cman.jp/network/support/nslookup.html)のサイトなどでDNSが反映されていることを確認してから以下コマンドを実行

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

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

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