メインコンテンツにスキップ
電子フロンティア財団のプロジェクト

Certbot の手順

あなたの HTTP ウェブサイトはどのような環境で実行されていますか?

私の HTTP ウェブサイトは以下で実行されています オン

Linux 上の Nginx (snap)

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

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 サーバーから...(以下略)

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 で動作するように切り替える...(以下略)

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

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 への接続がファイアウォールによってブロックされていないことを確認する必要があります。 わからない場合は、ISP またはホスティングプロバイダーに確認してください。 (DNS 検証を使用する場合、Let's Encrypt がサーバーへのインバウンド接続を確立する必要がないため、特にこの方法では、既存の HTTP ウェブサイトやポート 80 で接続を受信する機能は必要ありません。)

さまざまなインターネットサービスは、異なる TCP ポート番号を使用することで区別されます...(以下略)

ポート 80
ポート 80

さまざまなインターネットサービスは、異なる TCP ポート番号を使用することで区別されます。暗号化されていない HTTP は通常 TCP ポート 80 を使用しますが、暗号化された HTTPS は通常 TCP ポート 443 を使用します。 certbot --webroot、certbot --apache、または certbot --nginx を使用するには、Certbot を使用するサーバーでホストされている、既にオンラインになっている既存の HTTP ウェブサイトが必要です。このサイトは、ポート 80 でインターネットの他の部分からアクセスできる必要があります。 certbot --standalone を使用する場合、既存のサイトは必要ありませんが、インターネットサービスプロバイダーまたはウェブホスティングプロバイダーによって実行されているファイアウォールを含め、サーバーのポート 80 への接続がファイアウォールによってブロックされていないことを確認する必要があります。 わからない場合は、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は、Unixライクなオペレーティングシステムで、特定のコマンドをrootとして実行するための最も一般的なコマンドです...

sudo
sudo

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

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

    snapdをインストールし、classicスナップサポートを有効にするための指示に従う必要があります。

    snapcraftのサイトのこれらの指示に従ってsnapdをインストールしてください

  3. certbot-autoとCertbot OSパッケージを削除する

    aptdnfyum などの OS パッケージマネージャーを使用して Certbot パッケージをインストールしている場合は、Certbot スナップをインストールする前にそれらを削除する必要があります。これは、certbot コマンドを実行したときに、OS パッケージマネージャーからのインストールではなく、スナップが使用されるようにするためです。これを行うための正確なコマンドは OS によって異なりますが、一般的な例としては、sudo apt-get remove certbotsudo dnf remove certbotsudo yum remove certbot などがあります。

  4. Certbot のインストール

    Certbot をインストールするには、マシン上でコマンドラインで次のコマンドを実行します。

    sudo snap install --classic certbot
  5. Certbot コマンドの準備

    certbot コマンドを実行できるようにするには、マシン上でコマンドラインで次の手順を実行します。

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  6. Certbot の実行方法を選択してください

    証明書を取得してインストールするか...

    証明書を取得し、Certbot に nginx 設定を自動的に編集させて証明書を提供し、HTTPS アクセスを一度に有効にするには、このコマンドを実行します。

    sudo certbot --nginx

    または、証明書を取得するだけ

    より慎重に、nginx 設定を手動で変更したい場合は、このコマンドを実行します。

    sudo certbot certonly --nginx
  7. 自動更新のテスト

    システム上の Certbot パッケージには、証明書の期限が切れる前に自動的に更新する cron ジョブまたは systemd タイマーが付属しています。設定を変更しない限り、Certbot を再度実行する必要はありません。次のコマンドを実行することで、証明書の自動更新をテストできます。

    sudo certbot renew --dry-run

    certbot を更新するためのコマンドは、以下のいずれかの場所にインストールされています。

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  8. Certbot が機能したことを確認する

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

  1. DNS プロバイダーがサポートされているかどうかを確認する

    ドキュメントのこのリストを確認して、DNS プロバイダーが Certbot でサポートされているかどうかを確認してください。

    サポートされていませんか?

    DNS プロバイダーがサポートされていない場合は、ここで一時停止します。ドキュメントの手順に従って、手動プラグインを使用して Certbot を実行します。

    サポートされていますか?

    DNS プロバイダーがサポートされている場合は、以下の残りの手順を続行します。

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

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

  3. snapdをインストールする

    snapdをインストールし、classicスナップサポートを有効にするための指示に従う必要があります。

    snapcraftのサイトのこれらの指示に従ってsnapdをインストールしてください

  4. certbot-autoとCertbot OSパッケージを削除する

    aptdnfyum などの OS パッケージマネージャーを使用して Certbot パッケージをインストールしている場合は、Certbot スナップをインストールする前にそれらを削除する必要があります。これは、certbot コマンドを実行したときに、OS パッケージマネージャーからのインストールではなく、スナップが使用されるようにするためです。これを行うための正確なコマンドは OS によって異なりますが、一般的な例としては、sudo apt-get remove certbotsudo dnf remove certbotsudo yum remove certbot などがあります。

  5. Certbot のインストール

    Certbot をインストールするには、マシン上でコマンドラインで次のコマンドを実行します。

    sudo snap install --classic certbot
  6. Certbot コマンドの準備

    certbot コマンドを実行できるようにするには、マシン上でコマンドラインで次の手順を実行します。

    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  7. プラグインの包含レベルを確認する

    インストールされたプラグインが Certbot スナップと同じ classic 包含を持つことを承認するには、マシン上でコマンドラインでこのコマンドを実行します。

    sudo snap set certbot trust-plugin-with-root=ok

    Certbot の実行で問題が発生した場合は、この手順と「正しい DNS プラグインのインストール」手順を再度実行する必要がある場合があります。

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

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

    sudo snap install certbot-dns-<PLUGIN>

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

    sudo snap install certbot-dns-cloudflare
  9. 認証情報を設定する

    DNS 認証情報を設定する必要があります。

    DNS プロバイダーの「認証情報」セクションの手順に従って、適切な認証情報設定ファイルにアクセスまたは作成します。ドキュメントリストの DNS プラグイン名をクリックして、DNS プロバイダーの認証情報の手順を見つけます。

  10. Certbot の実行方法を選択してください

    証明書を取得してインストールするか...

    DNS プロバイダーの手順の「例」セクションにあるコマンドのいずれかを、フラグ -i nginx と共に実行します。

    または、証明書を取得するだけ

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

  11. 自動更新のテスト

    システム上の Certbot パッケージには、証明書の期限が切れる前に自動的に更新する cron ジョブまたは systemd タイマーが付属しています。設定を変更しない限り、Certbot を再度実行する必要はありません。次のコマンドを実行することで、証明書の自動更新をテストできます。

    sudo certbot renew --dry-run

    certbot を更新するためのコマンドは、以下のいずれかの場所にインストールされています。

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  12. Certbot が機能したことを確認する

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