SSL / TLSでは、SSLはSecure Socket Layerを表し、TLSはTransferLayerSecurityを表します。 SSL / TLSは、HTTPSプロトコルを介してデータを暗号化することにより、サーバーとデバイス間の安全な接続を確立する一般的な暗号化プロトコルです。これは、Webサーバーやブラウザーに広く実装されている認証プロトコルであり、安全でないHTTP上に安全なレイヤーを作成してそれらの間で安全なデータ交換を行います。 SSL / TLSの場合、有効な認証局(CA)が必要です。この記事では、無料のLet’sEncryptCAを使用します。
Certbotは、安全なHTTPSプロトコルを有効にするために、Web上でLet’sEncrypt証明書を統合および管理するためのオープンソースソフトウェアツールです。 Let’sEncrypt証明書を自動的に管理します。このためには、サーバーIPアドレスが指定された有効なドメインと、事前構成サーバーブロックを備えたNginxが必要です。
この記事では、Certbotを使用してUbuntu20.04に証明書を暗号化する方法を紹介します。デモンストレーションの目的で、NginxWebサーバーを使用します。
前提条件
- ドメイン名はパブリックIPにマッピングする必要があります
- ssl終了用のWebサーバー(nginx、apache、またはその他)。
- ポート80は一般に公開する必要があります。
Certbotのインストール
CertbotとNginxプラグインをインストールするには、次のコマンドを実行します。 Certbotをインストールする前に、必ずパッケージ情報を更新してください。
$ sudo apt update
$ sudo apt install certbot python3-certbot-nginx
Nginx構成が正しく機能し、ドメイン名が構成に含まれていることを確認してください。
Certbotを使用してLet'sEncrypt証明書を取得する
Certbotが提供する別のプラグインを使用して、さまざまな方法でSSL証明書を取得できます。証明書を取得するには、以前にインストールしたNginxプラグインとともにcertbotコマンドを使用します。 Nginxプラグインは、自動構成を管理し、必要に応じてNginx構成を再読み込みします。このためには、次のコマンドを実行する必要があります。
$ sudo certbot --nginx
上記のコマンドを実行した後、Certbotは、選択したドメインの証明書を要求するドメインを選択するためのオプションを提供します。このシナリオでは、証明書を要求するサブドメインはオプション2です。
Certbotコマンドの実行後に出力されます。
これで、Certbotはいくつかのタスクを実行し、HTTPトラフィックをHTTPSにリダイレクトするかどうかを再度尋ねます。希望する選択肢の数を選択して、Enterキーを押します。
リダイレクト構成を管理します。
リダイレクション構成が構成された後、Certbotは最終セットアップを開始し、次の重要なメモと成功メッセージを出力します。
SSL証明書を取得した後に出力します。
これで、URLを押すと、URLをクリックすると、URLの前に鍵のアイコンが表示され、以下の出力のように「接続は安全です」と表示されます。
証明書の詳細が必要な場合は、証明書をクリックすると、発行者、発行日、有効期限などのCAの詳細を示す次の結果が表示されます。
SSL証明書を更新する
証明書の実際の期間は3か月であるため、有効期間が終了した後に証明書を更新する必要があります。 Certbotコマンドを使用すると、証明書を簡単に更新できます。
次のコマンドを実行して、最初に更新を確認できます。
$ sudo certbot renew --dry-run
エラーがなければ、実際の更新に進む準備ができています。
次のコマンドを実行するだけで、Certbotがそれを更新します。
$ sudo certbot renew
結論
この記事では、Certbotをインストールして、証明書を暗号化する方法を学びます。この記事が無料のSSL証明書の取得に役立つことを願っています。