ZeroSSLでブラウザだけで無料の証明書(Let’s Encrypt)を取得しよう!

  • このエントリーをはてなブックマークに追加

はじめに

 Let’ Encrypt は CLI(コマンドラインインターフェイス)でコマンドを実行し、無料のSSL証明書を取得することでサーバにSSL証明書を適用することができます。

 ただし、どうしても CLI で Let’ Encrypt を使いたくない場合は「ZeroSSL」という素晴らしい Webサービスがあり、画面に従ってポチポチ作業するとあっという間に Let’ Encrypt のSSL証明書を取得できます。特に、GCP の Load Balancer は GUI 画面で証明書、中間証明書、秘密鍵を適用すれば良いだけなので、全てブラウザのGUIだけで済むため非常に便利です。

 注意点は、Let’ Encrypt の有効期限は90日間ですので、更新を忘れないようカレンダー登録すると良いでしょう。なお、Let’ Encrypt は CLI でSSL証明書を取得すると「あと XX 日でSSL証明書の有効期限が切れるよ!」とメールが届くので便利な側面もあります。
 
 Let’ Encrypt の詳細や CLI で Let’ Encrypt の SSL証明書を取得する方法は、弊社の過去記事を参考にしてください。
 無料で使えるLet’s EncryptをGCEに設定しよう

では早速、ZeroSSL+Let’s Encryptを使ってSSL証明書を無料で取得してGCPのロードバランサに適用してみるまでを解説します。
作業手順

  1. お名前.com でドメインを取得(※)
  2. お名前.com の管理画面でDNSサーバを CloudDNS が指定するDNSサーバを登録
  3. ZeroSSL でSSL証明書の取得(CloudDNS にTXTレコードを追加)
  4. ZeroSSL でSSL証明書の更新(CloudDNS にTXTレコードを変更)
  5. Tips GCP Load Balancer における SSL証明書設定方法

※ 本記事では「お名前.com」でドメインを取得しましたが、Google Domain などドメインが取得できればOKです。もちろん既存のドメインを利用しても構いません。

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

 お名前.com は2017年11月現在、work ドメインが1円(お一人様1個だけ)と激安なので、modum.work というドメインを有効期限1年として取得しました。
 テスト用であれば、お名前.com の管理画面(ドメイン Navi )上で「ドメインの自動更新をなし」に変更することで、1年間だけ利用できるのでお財布に優しいですね。

図 1 お名前.com サイト

お名前.com の管理画面でDNSサーバを CloudDNS が指定するDNSサーバを登録

 まずは GCP の CloudDNS で「modum.work」のゾーンを作成しましょう。そうすると以下のように4つのDNSサーバ名が表示されます。お名前.com のドメイン Navi で、DNSサーバの変更を行いましょう。

図 2 CloudDNS の DNSゾーンの作成画面

図 3 レジストラの設定画面

 Tips として、CloudDNS で表示されるNSレコードの最後尾に「.」が付与されていますが、そのまま、お名前.com のドメイン Navi にコピー&ペーストしても問題ありません。

ns-cloud-e1.googledomains.com.
ns-cloud-e2.googledomains.com.
ns-cloud-e3.googledomains.com.
ns-cloud-e4.googledomains.com.

※ NSレコードは「e1」~「e4」が設定時に変更されます。例えば「a1」~「a4」です。上表の NSレコードをそのままペーストせずに、CloudDNS の画面に表示される NSレコードを使ってください。

図 4 お名前.com のネームサーバ変更画面

 これで、お名前.com の設定は完了しました。簡単ですね。

ZeroSSL でSSL証明書の取得(CloudDNSも操作)

 それでは取得したドメイン用に ZeroSSL でSSL証明書を取得しましょう。作業概要はたった2ステップです!

  1. CSR Generator で CSR を作成
  2. FREE SSL Certificate Wizard で公開鍵、中間証明書、秘密鍵を取得

CSR Generator

 まずは以下のサイトにアクセスしてください。CSRを取得する必要があります。
https://zerossl.com/free-ssl/#csr

 作業手順は以下です。

  1. 取得したドメイン( modum.work )を入力
  2. 2048bit 選択(※)
  3. サブドメイン(www)も含めるのか聞かれますが今回は「No」を選択
  4. domain-key.txt と csr.txt をダウンロード(更新時に CSR は使うので大切に保存)

※ GCP でサポートされているのは、RSA-2048 暗号化と ECDSA P-256 暗号化のみですので、4096bit ではなく 2048bit を選択しましょう。参考 URL は以下です。
https://cloud.google.com/compute/docs/load-balancing/http/ssl-certificates?hl=ja

 操作画面を順番に図示します。参考にしてみてください。

図 5 CSR生成画面(その1)

図 6 CSR生成画面(その2)

図 7 CSR生成画面(その3)

※ ダウンロードするとファイル名は「domain-key.txt」「csr.txt」となります。
FREE SSL Certificate Wizard
 それでは、Let’ Encrypt の SSL証明書を取得しましょう。以下のサイトにアクセスしてください。
https://zerossl.com/free-ssl/#crt

 ダウンロードした「csr.txt」を開き、下図のとおり設定を行ってください。ポイントは「DNS verification」を使うところです。後で CloudDNS の TXT レコードを追加する必要があります。

図 8 秘密鍵生成画面(その1)

 NEXT ボタンを押すと、秘密鍵が生成されるのでダウンロードしましょう。ファイル名は「accunt-key.txt」となります。その後に、NEXT ボタンを押しましょう。

図 9 秘密鍵生成画面(その2)

 ドメインとの Verification(検証)が必要となりますので、下図に情報に基づき、CloudDNS に TXT レコードを追加しましょう。

図 10 Verification(検証)画面

CloudDNS に TXT レコード追加

 CloudDNS にアクセスし、作成済みの modum.work ゾーンに TXT レコードを追加しましょう。非常に簡単です。

図 11 CloudDNS TXTレコード作成画面

図 12 CloudDNS TXTレコード追加後の画面

 TTL をデフォルトの300秒(5分)にしたので、GCP のコンソール画面の「美しさ」を5分間を堪能してください。シンプルでわかりやすいですよね!

FREE SSL Certificate Wizard

 ZeroSSL のWebサイトに戻り、最終ステップに進みましょう。下図のとおり、NEXT ボタンを押すことで Verification(検証)を行います。

図 13 Verification(検証)画面(TXTレコード追加後に NEXT を押すこと)

図 14 SSL証明書取得画面(その1)

※ ダウンロードするとファイル名は「domain-crt.txt」となります。
 

図 15 SSL証明書取得画面(その2)

 自分の account ID を保存して、NEXT DONE を押すことで、Let’ Encrypt のSSL証明書を取得することができました。account ID はトラブル発生時に ZeroSSL にメールで質問する際に役立つので念のため保存しておきましょう。

ZeroSSL でSSL証明書の更新

 Let’ Encrypt の有効期限は90日間ですので、期間内に更新する必要があります。更新する際は、作成済みの CSR「csr.txt」 を用いることで作業が短縮できます。
 以下に作業手順を記載します。図も参考にするとわかりやすいでしょう。

  1. FREE SSL Certificate Wizard で、保存した CSR「csr.txt」をペースト(図16参照)
  2. FREE SSL Certificate Wizard の NEXT ボタンを押す
  3. CloudDNS の TXT レコードを更新(図13,17参照)
  4. FREE SSL Certificate Wizard の NEXT ボタンを押す
  5. SSL証明書「domain-crt.txt」をダウンロード
  6. FREE SSL Certificate Wizard の DONE NEXT ボタンを押す

図 16 ZeroSSL画面

図 17 CloudDNS TXTレコード変更画面

Tips:GCP Load Balancer における SSL証明書設定方法

 ダウンロードした「domain-crt.txt」を開くと以下のようになっています。

-----BEGIN CERTIFICATE-----
MIIE9zCCA9+gAwIBAgISA+OhKYTklN10yUGV/aMtjKGCMA0GCSqGSIb3DQEBCwUA
・
・
(中略)
・
・
4CHIzIiJCSwZjxIMIOR6njDXPVpDO8SWza2L
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA
・
・
(中略)
・
・
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----

 1番目の「—–BEGIN CERTIFICATE—–」が 公開鍵です。
 2番目の「—–BEGIN CERTIFICATE—–」が 中間証明書です。

 例えば、GCP の Load Balancer 「HTTP(S)」に追加する場合、以下の3つ情報を入力する必要があります。

  1. 公開鍵証明書
    ダウンロードファイル名:domain-crt.txt
  2. 中間証明書(証明書チェーン)
    ダウンロードファイル名:domain-crt.txt
  3. 秘密鍵
    ダウンロードファイル名:accunt-key.txt

 参考として、GCP の Load Balancer 「HTTP(S)」の設定を図示します。非常に簡単な作業で、SSL証明書(Let’ Encrypt)を適用することができます。

図 18 GCP の Load Balancer 「HTTP(S)」の設定画面

 ブラウザで SSL証明書(Let’ Encrypt)が正しく適用されているか確認しましょう。今回は Chrome を使います。
 Chrome の右上から「その他のツール」→「ディベロッパー ツール」→「Security」を選択すると下図のようになります。
 緑色で「This page is secure (valid HTTPS).」と表示されています。詳細な情報は「Virew certificate」で、SSL証明書(Let’ Encrypt)の更新期間等が参照可能です。

図 19 Let’ Encrypt のSSL証明書の確認画面(Chrome)

まとめ

 いかがでしたでしょうか?CLI(コマンドラインインターフェイス)を使わなくても、ZeroSSL を使うことで、GUI(グラフィックユーザーインターフェイス)による Let’ Encrypt のSSL証明書を取得できます。
 特に、GCP の Load Balancer や Google App Engine(GAE)に、Let’ Encrypt のSSL証明書を組み込む際に威力を発揮すると思われます。
 なお、冒頭でも記載しましたが、Let’ Encrypt の有効期限は90日間ですので、更新を忘れないようカレンダー登録すると良いでしょう。

  • このエントリーをはてなブックマークに追加

Google のクラウドサービスについてもっと詳しく知りたい、直接話が聞いてみたいという方のために、クラウドエースでは無料相談会を実施しております。お申し込みは下記ボタンより承っておりますので、この機会にぜひ弊社をご利用いただければと思います。

無料相談会のお申込みはこちら