前回の【GCP】無料枠でGCEのVMインスタンス作成からSSH接続・ポート変更までからの続きです。今回は、独自ドメイン取得からSSL証明書作成・HTTPSアクセスまでを紹介します。
【freenom】独自ドメイン取得
今回は、以下のドメインプロパイダ(freenom)から無料でドメインを取得します。
詳しい取得方法は以下の記事に詳しく書かれています。
Clound DNSでネームサーバーを設定
独自ドメインを取得したら、「ネットワークサービス」→「Clound DNS」に移動します。
「ゾーンを作成」ボタンをクリックし、DNSゾーンを作成します。
ゾーン名はプロジェクト内で固有にする必要があります。DNS名は取得したドメイン名を入力します。
DNSSECはデフォルトのままオフにします。DNSSECに関する詳しい情報は以下に記載されています。
DNS Security Extensions(DNSSEC)の概要 | Google Cloud
説明は、作成するゾーンに関する説明を記載した場合入力します。省略可です。
一通り入力し終わったら、「作成」ボタンをクリックします。
作成完了後、以下のような画面が表示されます。
freenomのネームサーバーに登録するため、データに表示されているns-cloudから始まる4つのアドレスをコピーします。後ほど、freenomでネームサーバーの設定で使用します。
レコードセット作成をします。
「レコードセットを追加」ボタンをクリックし、IPv4アドレスの箇所に外部アドレスを入力します。入力したら「作成」ボタンをクリックし、今度はDNS名に「www」を入力したレコードセットを作成します。
レコードセット作成完了後、freenomf画面に戻り、ネームサーバーの設定を行います。
freenomの「Services」→「My Domains」→登録したドメインの「Managed Domain」→「Managment Tools」→「Nameservers」に移動します。
「Use custom nameservers (enter below)」のラジオボタンをクリックし、先ほどコピーしたネームサーバーを入力していきます。
入力が完了したら、「Charge Nameservers」ボタンをクリックします。
IPアドレスとドメインが紐づいたか確認
IPアドレスとドメインがちゃんと紐づいたか確認しましょう。Nginxをインストールして設定したドメインにアクセスしてみます。
Nginxをインストールするためにインスタンス内に入ります。前回、22番ポートを閉じて40022番ポートを開けたため、ポートを指定してSSH接続します。
1 | $ ssh sample_user@<指定IPアドレス> -i ~/.ssh/my-ssh-key -p 40022 |
Nginxをインストールします。
1 | $ sudo apt install nginx -y |
Nginxを起動します。
1 | $ sudo systemctl start nginx |
起動していることを確認します。
1 2 3 4 | $ sudo systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-08-22 06:35:21 UTC; 2s ago |
では実際に設定したドメインにアクセスしてみましょう。
sample-user-gcp.mlドメインにアクセスし、以下のように「Welcome to nginx!」と表示されていることが確認できたら成功です。
SSL証明書はまだ作成されていないためhttpsでアクセスすると、以下のようにアクセスできないことが確認できます。
Let’s EncryptでSSL証明書を作成
VMインスタンス内に接続し、Let’s EncryptでSSL対応します。
詳細は以下の公式サイトで確認できます。
ユーザーガイド - Let's Encrypt 総合ポータル
以下のコマンドでcerbot-autoをインストールします。
1 | $ wget https://dl.eff.org/certbot-auto |
1 | $ chmod a+x certbot-auto |
cerbot-autoを実行し、SSL証明書作成していきます。
1 | $ ./certbot-auto |
実行後にディスクスペース(今回の場合は172MB)が使われるがよいか聞いています。「Y」を入力します。
1 2 | After this operation, 172 MB of additional disk space will be used. Do you want to continue? [Y/n] Y |
メールアドレスを入力しましょう。
1 2 | Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): |
利用規約について同意するか聞いています。以下のURLを確認後「A」を入力します。
1 2 3 4 5 6 7 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A |
お知らせやキャンペーン情報について入力したメールアドレスに送っていいか聞いています。今回は「N」を入力しました。
1 2 3 4 5 6 7 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N |
SSL証明書を発行するドメイン名を入力します。今回は「sample-user-gcp.ml」を取得・設定しているためそれを入力します。
1 2 | No names were found in your configuration files. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): sample-user-gcp.ml |
httpにアクセスされた場合、httpsにリダイレクトするか聞いています。リダイレクトする場合は「2」を入力しましょう。
1 2 3 4 5 6 7 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 |
SSL証明書の発行が完了しました。
1 2 3 4 5 6 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://sample-user-gcp.ml You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=sample-user-gcp.ml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
HTTPSでアクセスできる確認
プロトコルをhttpsにしてsample-user-gcp.mlにアクセスしてみます。以下のように正常に表示されたらSSL対応完了です。
以上、GCEで独自ドメイン設定からSSL対応までを紹介しました。