本文へスキップ
Electronic Frontier Foundation のプロジェクト

Certbot の手順

HTTP ウェブサイトは何で稼働していますか?

私の HTTP ウェブサイトは稼働しています

FreeBSD 上の HAProxy

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

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などのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある可能性があります(例:`sudo certbot`ではなく`certbot`)。(certbot-autoスクリプトは、必要で指定されていない場合、自動的にsudoを実行します。)

sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するために最も一般的に使用されるコマンドです…

sudo
sudo

sudoは、Unix系オペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するために最も一般的に使用されるコマンドです。root以外のユーザーとしてサーバーにログインしている場合、特にApacheやNginxなどのWebサーバーとCertbotを統合して使用している場合は、Certbotコマンドの前にsudoを付ける必要がある可能性があります(例:`sudo certbot`ではなく`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にコピーを提供してDNS検証を自動的に実行させるのは問題ありません。

DNS認証情報は、DNSレコードの内容を変更するためにDNSプロバイダーが使用できるようにするパスワードまたはその他の秘密情報(APIキーなど)です…

DNS認証情報
DNS認証情報

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

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

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

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

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

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

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

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

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

  2. サーバーへのSSH接続

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

  3. Certbotのインストール

    Certbotパッケージをインストールします…

    コマンドラインから以下のコマンドを実行して、Certbotパッケージをインストールします。

    pkg install security/py-certbot

    または、ポートからCertbotをインストールすることもできます。

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

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

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

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

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

    pkg install security/py-certbot-dns-cloudflare
  5. 証明書を取得します

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

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

    新しい証明書をウェブサーバーの構成ファイルにインストールする必要があります。

  7. 自動更新のテスト

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

    sudo certbot renew --dry-run

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

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

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

  9. HAProxy固有の情報の詳細が必要ですか?

    HAProxyでの証明書のインストールは複雑です。以下のガイドで詳細情報を確認できます。

    または、Greenhostの試験的なサードパーティHAProxyプラグインの使用を検討してもよいでしょう。