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

Certbot の使い方

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

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

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

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

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

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

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

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

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

コマンドラインとは、テキストベースのコマンドを入力してコンピュータと対話し、テキストベースの応答を受け取る方法です。Certbot は、通常は Unix 系サーバーのコマンドラインインターフェイスから実行されます。ほとんどの場合、Certbot を使用するには、Web サーバーのコマンドラインに Certbot をインストールして実行できる必要があります。通常、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 で動作するように切り替えるために使用されます(その後、必要に応じてサイトの 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 ポート番号を使用することで区別されます。暗号化されていない 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を実行している必要はありません。通常、端末のコマンドラインから、ssh username@example.comなどのコマンドを入力してSSHを使用します。特に、自分のコンピューターがLinuxまたはmacOSを実行している場合です。ログインすると、サーバーのコマンドラインにアクセスできます。コンピューターでWindowsを使用している場合は、PuTTYなどの専用のSSHアプリケーションを使用することもできます。ほとんどのCertbotユーザーは、SSH経由でリモートサーバーのコマンドプロンプトからCertbotを実行します。

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

ssh
SSH

SSH(「セキュアシェル」の略)は、リモートサーバーに接続し、そのサーバーのコマンドラインにアクセスするための技術です。多くの場合、サーバーを管理するために使用されます。サーバーの管理者は、他の人にSSHアクセスを許可したり、SSHアクセスを直接使用してサーバーをリモートで管理したりできます。SSHは通常、Unixライクなオペレーティングシステムを実行しているサーバーにアクセスするために使用されますが、SSHを使用するために自分のコンピューターがUnixを実行している必要はありません。通常、端末のコマンドラインから、ssh username@example.comなどのコマンドを入力してSSHを使用します。特に、自分のコンピューターが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にコピーを提供してDNS検証を自動的に実行させることは問題ありません。Certbotはマシン上でローカルに実行されるためです。

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

DNS認証情報
DNS認証情報

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

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

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

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

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

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

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

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

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

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

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

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

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

    Certbotパッケージをインストールするには、マシン上のコマンドラインで次のコマンドを実行してください。

    pkg install security/py-certbot

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

    portsから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バーの鍵アイコンを探します。