メインコンテンツにスキップ
エレクトロニック・フロンティア財団のプロジェクト

Certbot の手順

あなたの HTTP ウェブサイトは何で動いていますか?

私の HTTP ウェブサイトは で動作しています。

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

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

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

A laptop
コマンドラインの
操作に慣れていること
Close button

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

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

操作に慣れていること
コマンドライン

コマンドラインとは、テキストベースのコマンドを入力してコンピュータとやり取りし、テキストベースの応答を受け取る方法です。Certbot は、通常は Unix ライクなサーバー上で、コマンドラインインターフェースから実行されます。ほとんどの目的で 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)は、ウェブブラウザがウェブページのコンテンツを要求するための従来のセキュリティが保証されていない方法です...

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 ドキュメントでは、HTTP のポート 80 を使用して既にアクセスできる稼働中の Web サイトがあることを前提または推奨しています。つまり、たとえば、Web ブラウザを使用して http:// でドメインに移動した場合、Web サーバーが応答し、何らかのコンテンツが表示されます (サイトの最終バージョンではなく、デフォルトのウェルカムページであっても)。Certbot の一部のメソッドではこれが必須条件となっているため、既に HTTP で設定されたサイトがある場合は、よりスムーズなエクスペリエンスが得られます。(サイトがポリシーとしてこの方法でアクセスできない場合は、Certbot で証明書を取得するために DNS 検証を使用する必要がある可能性があります。)

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

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

Certbot は通常、既存の HTTP サイトを HTTPS で動作するように切り替え (その後、必要に応じてサイトの HTTPS 証明書を継続的に更新) するために使用されます。一部の Certbot ドキュメントでは、HTTP のポート 80 を使用して既にアクセスできる稼働中の 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 は通常 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
...これは、
サーバー
閉じるボタン

サーバーとは、Webサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターのことです。ほとんどのWebサイト所有者は、データセンター内に設置され、インターネット経由で管理されるサーバーの使用料をホスティングプロバイダーに支払います。これは、物理的な専用サーバー、仮想専用サーバー (VPS)、または共有サーバーである場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。

サーバーとは、Webサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターのことです...

サーバー
サーバー

サーバーとは、Webサイトやメールサービスなどのサービスを提供するインターネット上のコンピューターのことです。ほとんどのWebサイト所有者は、データセンター内に設置され、インターネット経由で管理されるサーバーの使用料をホスティングプロバイダーに支払います。これは、物理的な専用サーバー、仮想専用サーバー (VPS)、または共有サーバーである場合があります。その他のサーバーは、DNSサーバーなど、インターネットインフラストラクチャの他の部分を提供します。


にホストされており、
ssh
閉じるボタン
SSH

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

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

ssh
SSH

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


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

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

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

sudo
sudo

Sudoは、Unix系のオペレーティングシステムで、特定のコマンドをroot(システム管理者)として実行するための最も一般的なコマンドです。root以外のユーザーとしてサーバーにログインしている場合は、特にApacheやNginxのようなWebサーバーとのCertbotの統合を使用している場合は、Certbotコマンドの前にsudoを付けて、それらがrootとして実行されるようにする必要があるでしょう(例: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検証を実行させるために、これらの認証情報のコピーをCertbotに提供しても構いません。これはローカルマシンで実行されるためです。

DNS認証情報とは、DNSプロバイダーがDNSレコードの内容を変更するために使用を許可するパスワードやその他の種類の秘密情報(APIキーなど)のことです...

DNS認証情報
DNS認証情報

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

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

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

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

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

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

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

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

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

    pkg_add -<PLUGIN>

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

    pkg_add -cloudflare
  4. 証明書を取得する

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

  5. 証明書をインストールする

    Webサーバーの設定ファイルに新しい証明書をインストールする必要があります。

  6. 自動更新を設定する

    デフォルトのcrontabにcronジョブを追加する次の行を実行することをお勧めします。

    echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
  7. Certbotが機能したことを確認する

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