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

Certbot の手順

あなたの HTTP ウェブサイトはどのような環境で稼働していますか?

私の HTTP ウェブサイトは以下で稼働しています オン

FreeBSD 上の Nginx

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

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

A laptop
...を使いこなせること
コマンドライン
Close button

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

コマンドラインとは、テキストベースのコマンドを入力してコンピューターと対話し、テキス...

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

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

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 で動作するように切り替えるために使用されます(その後、必要に応じてサイトの HT...

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

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 は通常 TCP ポー...

ポート 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を付ける必要がある場合があります(たとえば、certbotではなくsudo certbot)。特に、ApacheやNginxなどのWebサーバーとCertbotの統合を使用している場合に当てはまります。(certbot-autoスクリプトは、必要な場合に自動的にsudoを実行します。指定しなかった場合)。

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

sudo
sudo

sudoは、Unix系オペレーティングシステムで特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、Certbotコマンドの前にsudoを付ける必要がある場合があります(たとえば、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資格情報
DNS資格情報

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

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

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

  1. サーバーにSSH接続します

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

  2. Certbotをインストールします

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

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

    pkg install security/py-certbot-nginx

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

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

    cd /usr/ports/security/py-certbot-nginx && make install clean
  3. Certbotの実行方法を選択します

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

    このコマンドを実行して証明書を取得し、Certbotにnginx構成を自動的に編集させて証明書を提供させ、HTTPSアクセスを1つのステップで有効にします。

    sudo certbot --nginx

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

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

    sudo certbot certonly --nginx
  4. 自動更新をテストします

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

    sudo certbot renew --dry-run

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

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

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

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

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

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

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

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

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

  2. サーバーにSSH接続します

    sudo権限を持つユーザーとして、HTTP Webサイトを実行しているサーバーに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バーのロックアイコンを探します。