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

Certbot の手順

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

私の HTTP ウェブサイトは次の環境で実行されています

FreeBSD 上の Nginx

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

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

A laptop
以下に対する知識
コマンドライン
Close button

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

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

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

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

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

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

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

HTTP ウェブサイト
HTTP

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


それは
既にオンラインであること
Close button

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

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替えるために使用されます (その後、...

既にオンラインであること
既にオンラインのウェブサイト

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替え (その後、必要に応じてサイトの HTTPS 証明書を更新し続ける) ために使用されます。一部の Certbot ドキュメントでは、ポート 80 で HTTP を使用して既にアクセスできる動作中のウェブサイトがあることを前提または推奨しています。つまり、例えば、ウェブブラウザを使用して http:// を使用してドメインに移動すると、ウェブサーバーが応答し、何らかのコンテンツが表示されるということです (サイトの最終バージョンではなく、デフォルトのウェルカムページのみである場合でも)。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 ポート番号を使用することで区別されます。暗号化されていない HTTP は通常...

ポート 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を実行している必要はありません。通常、LinuxまたはmacOSを実行している場合、端末のコマンドラインから `ssh username@example.com` のようなコマンドを入力してSSHを使用します。ログイン後、サーバーのコマンドラインにアクセスできるようになります。コンピュータでWindowsを使用している場合は、PuTTYのような専用のSSHアプリケーションを使用することもできます。ほとんどのCertbotユーザーは、リモートサーバーのコマンドプロンプトからSSH経由でCertbotを実行します。

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

ssh
SSH

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


を介してアクセスでき、
sudo
閉じるボタン

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

Sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです...

sudo
sudo

Sudoは、Unixライクなオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するために最も一般的に使用されるコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxのようなウェブサーバーとのCertbotの統合を使用している場合、Certbotコマンドをrootとして実行するために、コマンドの前にsudoを付ける必要がある可能性があります(たとえば、単にcertbotではなくsudo 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がDNS検証を自動的に実行できるように、これらのコピーをCertbotに提供しても大丈夫です。これは、Certbotがローカルマシン上で実行されるためです。

DNSクレデンシャルとは、DNSプロバイダーがDNSレコードの内容を変更するために使用できるようにするパスワードまたはその他の種類の秘密(APIキーなど)のことです...

DNSクレデンシャル
DNSクレデンシャル

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

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

ご心配なく!一部のホスティングプロバイダーはHTTPSプロセスを自動化しています。ホスティングプロバイダーの完全なリストを参照するか、システムの設定方法の詳細をご覧ください

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

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

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

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

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

    お使いの DNS プロバイダーがサポートされている場合は、以下に示す残りの手順に進んでください。

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

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

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

    Certbotパッケージをインストールするか...

    Certbotパッケージをインストールするには、マシンのコマンドラインでこのコマンドを実行します。

    pkg install security/py-certbot-nginx

    または、必要に応じて、ポートからCertbotをインストールします。

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

    cd /usr/ports/security/py-certbot-nginx && make install clean
  4. 正しい DNS プラグインをインストールする

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

    pkg install security/py-certbot-dns-<PLUGIN>

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

    pkg install security/py-certbot-dns-cloudflare
  5. Certbotの実行方法を選択する

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

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

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

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

  6. 自動更新をテストする

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

    sudo certbot renew --dry-run

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

    • /etc/crontab/
    • /etc/cron.*/*
    • systemctl list-timers
  7. Certbot が正常に動作したことを確認する

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