メインコンテンツにスキップ
Electronic Frontier Foundation のプロジェクト

Certbot の使用方法

ご利用の HTTP ウェブサイトはどのような環境で動作していますか?

私の HTTP ウェブサイトは以下で動作しています 稼働環境

OpenBSD 上のウェブホスティング製品

デフォルト
ワイルドカード

Certbot を使用するには、以下が必要です...

A laptop
以下の操作に慣れていること
コマンドライン
Close button

コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です。Certbot は、通常は Unix 系サーバー上のコマンドラインインターフェースから実行されます。 Certbot をほとんどの目的で使用するには、通常は SSH 経由でアクセスする Web サーバーのコマンドラインに Certbot をインストールして実行できる必要があります。

コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です...

コマンドライン
コマンドライン

コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です。Certbot は、通常は Unix 系サーバー上のコマンドラインインターフェースから実行されます。 Certbot をほとんどの目的で使用するには、通常は SSH 経由でアクセスする Web サーバーのコマンドラインに Certbot をインストールして実行できる必要があります。

Web browser showing an HTTP site
...そして
HTTP ウェブサイト
Close button

HTTP(Hypertext Transfer Protocol)は、Web ブラウザが Web サーバーから Web ページやその他のオンラインリソースのコンテンツをリクエストするための従来の、しかし安全ではない方法です。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界のほぼすべての Web サイトは HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法で構成された Web サイトは、ユーザーをサイトの HTTP バージョンから HTTPS バージョンに自動的にリダイレクトする場合があります。

HTTP(Hypertext Transfer Protocol)は、Web ブラウザが Web サーバーから Web ページやその他のオンラインリソースのコンテンツをリクエストするための従来の、しかし安全ではない方法です...

HTTP ウェブサイト
HTTP

HTTP(Hypertext Transfer Protocol)は、Web ブラウザが Web サーバーから Web ページやその他のオンラインリソースのコンテンツをリクエストするための従来の、しかし安全ではない方法です。これはインターネット標準であり、通常は TCP ポート 80 で使用されます。世界のほぼすべての Web サイトは HTTP をサポートしていますが、Certbot またはその他の HTTPS 設定方法で構成された Web サイトは、ユーザーをサイトの HTTP バージョンから HTTPS バージョンに自動的にリダイレクトする場合があります。


それが
すでにオンラインであること
Close button

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます(その後、必要に応じてサイトの HTTPS 証明書の更新を続けます)。 Certbot のドキュメントの一部では、ポート 80 で HTTP を使用してアクセスできる動作中の Web サイトが既にあることを前提としているか、推奨しています。つまり、たとえば、Web ブラウザを使用して http:// を使用してドメインにアクセスすると、Web サーバーが応答し、何らかのコンテンツが表示されます(最終版のサイトではなく、デフォルトのウェルカムページであっても)。 Certbot を使用する方法の中には、これを前提条件としているものがあるため、HTTP でサイトを既に設定している場合、よりスムーズなエクスペリエンスが得られます。 (ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要があるでしょう。)

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます(その後、必要に応じてサイトの HTTPS 証明書の更新を続けます)...

すでにオンラインであること
すでにオンラインになっているウェブサイト

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます(その後、必要に応じてサイトの HTTPS 証明書の更新を続けます)。 Certbot のドキュメントの一部では、ポート 80 で HTTP を使用してアクセスできる動作中の Web サイトが既にあることを前提としているか、推奨しています。つまり、たとえば、Web ブラウザを使用して http:// を使用してドメインにアクセスすると、Web サーバーが応答し、何らかのコンテンツが表示されます(最終版のサイトではなく、デフォルトのウェルカムページであっても)。 Certbot を使用する方法の中には、これを前提条件としているものがあるため、HTTP でサイトを既に設定している場合、よりスムーズなエクスペリエンスが得られます。 (ポリシー上、サイトにこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要があるでしょう。)


以下のポートが開いていること
ポート 80
Close button

さまざまなインターネットサービスは、異なる TCP ポート番号を使用することで区別されます。暗号化されていない HTTP は通常 TCP ポート 80 を使用しますが、暗号化された HTTPS は通常 TCP ポート 443 を使用します。`certbot --webroot`、`certbot --apache`、または `certbot --nginx` を使用するには、Certbot を使用するサーバーでホストされている、既にオンラインになっている既存の HTTP ウェブサイトが必要です。このサイトは、ポート 80 でインターネットの他の部分からアクセスできる必要があります。`certbot --standalone` を使用する場合、既存のサイトは必要ありませんが、サーバーのポート 80 への接続がファイアウォール(インターネットサービスプロバイダまたは Web ホスティングプロバイダによって実行されているファイアウォールを含む)によってブロックされていないことを確認する必要があります。わからない場合は、ISP またはホスティングプロバイダに確認してください。 (DNS 検証を使用する場合、Let's Encrypt がサーバーへのインバウンド接続を行う必要はないため、特にこの方法では、既存の HTTP ウェブサイトやポート 80 で接続を受信する機能は必要ありません。)

さまざまなインターネットサービスは、異なる TCP ポート番号を使用することで区別されます。暗号化されていない HTTP...

ポート 80
ポート 80

さまざまなインターネットサービスは、異なる TCP ポート番号を使用することで区別されます。暗号化されていない HTTP は通常 TCP ポート 80 を使用しますが、暗号化された HTTPS は通常 TCP ポート 443 を使用します。`certbot --webroot`、`certbot --apache`、または `certbot --nginx` を使用するには、Certbot を使用するサーバーでホストされている、既にオンラインになっている既存の HTTP ウェブサイトが必要です。このサイトは、ポート 80 でインターネットの他の部分からアクセスできる必要があります。`certbot --standalone` を使用する場合、既存のサイトは必要ありませんが、サーバーのポート 80 への接続がファイアウォール(インターネットサービスプロバイダまたは Web ホスティングプロバイダによって実行されているファイアウォールを含む)によってブロックされていないことを確認する必要があります。わからない場合は、ISP またはホスティングプロバイダに確認してください。 (DNS 検証を使用する場合、Let's Encrypt がサーバーへのインバウンド接続を行う必要はないため、特にこの方法では、既存の HTTP ウェブサイトやポート 80 で接続を受信する機能は必要ありません。)

A server
...これは、
サーバー
閉じるボタン

サーバーとは、インターネット上でウェブサイトやメールサービスなどのサービスを提供するコンピュータです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されているサーバーの使用料をホスティングプロバイダに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を担っています。

サーバーとは、インターネット上でウェブサイトやメールサービスなどのサービスを提供するコンピュータです…。

サーバー
サーバー

サーバーとは、インターネット上でウェブサイトやメールサービスなどのサービスを提供するコンピュータです。ほとんどのウェブサイト所有者は、データセンターに設置され、インターネット経由で管理されているサーバーの使用料をホスティングプロバイダに支払っています。これは、物理的な専用サーバー、仮想プライベートサーバー(VPS)、または共有サーバーの場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を担っています。


上でホストされており、
ssh
閉じるボタン
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするための技術で、多くの場合、サーバーを管理するために使用されます。サーバーの管理者は、他の人にSSHアクセスを許可したり、SSHアクセスを直接使用してサーバーをリモートで管理したりできます。SSHは通常、Unix系オペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピュータでUnixを実行している必要はありません。通常、SSHは、端末でコンピュータのコマンドラインから、ssh username@example.comなどのコマンドを入力して使用します。これは、特に自分のコンピュータがLinuxまたはmacOSを実行している場合に当てはまります。ログインすると、サーバーのコマンドラインにアクセスできます。コンピュータでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもあります。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。

SSH(「セキュアシェル」の略)とは、リモートサーバーに接続してアクセスするための技術です…。

ssh
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするための技術で、多くの場合、サーバーを管理するために使用されます。サーバーの管理者は、他の人にSSHアクセスを許可したり、SSHアクセスを直接使用してサーバーをリモートで管理したりできます。SSHは通常、Unix系オペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピュータでUnixを実行している必要はありません。通常、SSHは、端末でコンピュータのコマンドラインから、ssh username@example.comなどのコマンドを入力して使用します。これは、特に自分のコンピュータがLinuxまたはmacOSを実行している場合に当てはまります。ログインすると、サーバーのコマンドラインにアクセスできます。コンピュータでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもあります。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。


経由でアクセスできます。
sudo
閉じるボタン

sudoは、Unix系オペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付けてrootとして実行する必要がある場合があります(たとえば、certbotではなくsudo certbot)。これは、ApacheやNginxなどのWebサーバーとCertbotを統合している場合に特に当てはまります。(certbot-autoスクリプトは、sudoが必要で、指定しなかった場合に自動的にsudoを実行します。)

sudoは、Unix系オペレーティングシステムで特定のコマンドをrootとして実行するための最も一般的なコマンドです…。

sudo
sudo

sudoは、Unix系オペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付けてrootとして実行する必要がある場合があります(たとえば、certbotではなくsudo certbot)。これは、ApacheやNginxなどのWebサーバーとCertbotを統合している場合に特に当てはまります。(certbot-autoスクリプトは、sudoが必要で、指定しなかった場合に自動的にsudoを実行します。)


権限が必要です。
ワイルドカード証明書
閉じるボタン

ワイルドカード証明書とは、*.で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*)の代わりに任意のラベルを受け入れます。たとえば、*.example.comの証明書は、www.example.commail.example.comhello.example.com、およびgoodbye.example.comに対して有効です。

ただし、*.example.comという名前のみを含むワイルドカード証明書は、example.comに対しては有効ではありません。置換されるラベルは空にすることはできません。証明書をexample.comに対して有効にする場合は、証明書にexample.com(つまり、*.の部分がないもの)も含める必要があります。

さらに、アスタリスクは単一のラベルのみに置き換えることができ、複数のラベルには置き換えることができません。たとえば、hello.goodbye.example.comという名前は、*.example.comという名前のみを含む証明書の対象にはなりません。ただし、*.goodbye.example.comの対象にはなります。ワイルドカード名に複数のアスタリスクを含めることはできません。たとえば、*.*.example.comは無効です。

ワイルドカード証明書とは、*.で始まる1つ以上の名前を含む証明書です。ブラウザは…

ワイルドカード証明書
ワイルドカード証明書

ワイルドカード証明書とは、*.で始まる1つ以上の名前を含む証明書です。ブラウザは、アスタリスク(*)の代わりに任意のラベルを受け入れます。たとえば、*.example.comの証明書は、www.example.commail.example.comhello.example.com、およびgoodbye.example.comに対して有効です。

ただし、*.example.comという名前のみを含むワイルドカード証明書は、example.comに対しては有効ではありません。置換されるラベルは空にすることはできません。証明書をexample.comに対して有効にする場合は、証明書にexample.com(つまり、*.の部分がないもの)も含める必要があります。

さらに、アスタリスクは単一のラベルのみに置き換えることができ、複数のラベルには置き換えることができません。たとえば、hello.goodbye.example.comという名前は、*.example.comという名前のみを含む証明書の対象にはなりません。ただし、*.goodbye.example.comの対象にはなります。ワイルドカード名に複数のアスタリスクを含めることはできません。たとえば、*.*.example.comは無効です。

が必要な場合はオプションです :
DNS認証情報
閉じるボタン

DNS認証情報とは、DNSプロバイダがDNSレコードの内容を変更するために使用することを許可しているパスワードまたはその他の種類のシークレット(APIキーなど)です。通常は、ドメインレジストラ(または、DNSプロバイダがレジストラと同じでない場合は別のDNSプロバイダ)によって発行されます。DNS認証情報は、サイトを完全に乗っ取ることができるため、機密性の高いシークレットです。これらの認証情報を公開したり、権限のない人と共有したりしないでください。Certbotがマシン上でローカルに実行されるため、Certbotにコピーを提供してDNS検証を自動的に実行させることは問題ありません。

DNS認証情報とは、DNSプロバイダがDNSレコードの内容を変更するために使用することを許可しているパスワードまたはその他の種類のシークレット(APIキーなど)です…。

DNS認証情報
DNS認証情報

DNS認証情報とは、DNSプロバイダがDNSレコードの内容を変更するために使用することを許可しているパスワードまたはその他の種類のシークレット(APIキーなど)です。通常は、ドメインレジストラ(または、DNSプロバイダがレジストラと同じでない場合は別のDNSプロバイダ)によって発行されます。DNS認証情報は、サイトを完全に乗っ取ることができるため、機密性の高いシークレットです。これらの認証情報を公開したり、権限のない人と共有したりしないでください。Certbotがマシン上でローカルに実行されるため、Certbotにコピーを提供してDNS検証を自動的に実行させることは問題ありません。

これらの要件を満たしていませんか?

ご心配なく!一部のホスティングプロバイダは、HTTPSプロセスを自動化しています。ホスティングプロバイダの全リストをご覧ください、またはシステムのセットアップ方法について詳しくはこちら

  1. サーバーにSSH接続する

    sudo権限を持つユーザーとして、HTTP Webサイトを実行しているサーバーにSSH接続します。

  2. Certbotをインストールする

    マシン上のコマンドラインでこのコマンドを実行して、Certbotをインストールします。

    pkg_add certbot
  3. Certbotの実行方法を選択する

    ウェブサイトを一時的に停止してもよろしいですか?

    はい、現在このマシンでWebサーバーは実行されていません。

    Webサーバーを停止してから、このコマンドを実行して証明書を取得します。Certbotは、マシン上に一時的にWebサーバーを起動します。

    sudo certbot certonly --standalone

    いいえ、Webサーバーを実行し続ける必要があります。

    すでにポート80を使用しているWebサーバーがあり、Certbotの実行中に停止したくない場合は、このコマンドを実行し、端末の指示に従ってください。

    sudo certbot certonly --webroot
  4. 証明書のインストール

    新しい証明書をWebサーバーの設定ファイルにインストールする必要があります。

  5. 自動更新の設定

    次の行を実行することをお勧めします。これは、デフォルトのcrontabにcronジョブを追加します。

    echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
  6. Certbotが動作していることを確認する

    サイトが正しく設定されていることを確認するには、ブラウザで https://yourwebsite.com/ にアクセスし、URLバーの鍵アイコンを探します。

  1. サーバーにSSH接続する

    sudo権限を持つユーザーとして、HTTP Webサイトを実行しているサーバーにSSH接続します。

  2. Certbotをインストールする

    マシン上のコマンドラインでこのコマンドを実行して、Certbotをインストールします。

    pkg_add certbot
  3. 正しいDNSプラグインをインストールする

    <PLUGIN> をDNSプロバイダーの名前に置き換えて、次のコマンドを実行します。

    pkg_add -<PLUGIN>

    たとえば、DNSプロバイダーがCloudflareの場合は、次のコマンドを実行します。

    pkg_add -cloudflare
  4. 証明書を取得する

    DNSプロバイダーの指示の「例」セクションにあるコマンドのいずれかを実行します。

  5. 証明書のインストール

    新しい証明書をWebサーバーの設定ファイルにインストールする必要があります。

  6. 自動更新の設定

    次の行を実行することをお勧めします。これは、デフォルトのcrontabにcronジョブを追加します。

    echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
  7. Certbotが動作していることを確認する

    サイトが正しく設定されていることを確認するには、ブラウザで https://yourwebsite.com/ にアクセスし、URLバーの鍵アイコンを探します。