本文へ移動
TURNKEYGNU / LINUX
アプリドキュメントブログスクリーンショットGitHubTurnKey Hub
文日本語
EnglishEspañol中文日本語PortuguêsDeutsch
ふりがな/Confconsole - Let's Encrypt

ドキュメント

Confconsole - Let's Encrypt

コンテンツ

  • プロフィール
  • 証明書自動更新
  • 証明書を入手
    • HTTP-01 - ポート80で検証
    • DNS-01 - DNSレコードで検証
    • 特別ノートはワイルドカードの証明書を返します
  • 証明書の取得 - 舞台裏で
  • ジョブの詳細
  • 高度なカスタムメインメッセージ
  • 高度な - 複数のドメイン名の使用

プロフィール

Confconsole Let's Encryptプラグインは、Let's Encrypt経由でTLS/SSL証明書を署名した無料の正当なCAを取得する簡単な方法を提供します。 それは両方をサポートしています 寸法: HTTP-01 と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と と 寸法: DNS-01 登録している(sub)domain(s) の制御を検証するための "challenge" メソッド。

HTTP-01 の課題は、ポート 80 を介してカスタムミニ Webserver によってホストされます。ポート 80 が既に使用している場合は、デフォルトの Webserver は一時的に停止します。 TXT DNSレコードを一時的に設定することでDNS-01チャレンジが達成されます。 対応するDNSプロバイダの API.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.

デフォルトでは、Confconsoleは、既存のWebサーバーがすべてのhttpsポートで使用できる単一の証明書で最大4サブドメインでドメインを登録するサポートしています。 管理者等も同じ証明書をWebmin(miniserverでビルドされている)として使用します。 ワイルドカード証明書もサポートしていますが、DNS-01 の検証が必要です(HTTP-01 では対応していません)。

Confconsole 経由で初期設定を継承する際、サーバーの構成は一般的に必要ありません。一般的な使用シナリオは「ただの作業」です。 より珍しい複雑なものでも、追加の構成が必要な場合があります。

Confconsole - Let's Encrypt

デフォルトでは、Confconsole は、これらのサーバー/ウェブサーバで "just work" を "just work" にする必要があります。

  • 名称: Apache
  • ライブラリ
  • 名称: Nginx
  • トムキャット
  • 名称: Webmin

代替サーバーのサポートをご希望の場合は、下記までお問い合わせ下さい。 フォーラム問題の発生や/または問題のオープン トラッカー 貢献コードに開いたら、温かく歓迎されます。

証明書自動更新

このオプションを選択すると、デフォルトのTLS / SSL証明書の更新cronジョブが生成されます(名称: /etc/cron.daily/confconsole-dehydrated)実行可能(またはない)。/etc/cron.daily内の実行ファイルのみがcronによって自動的にトリガーされます。

注意: 初期証明書(脱水も設定)を取得するまで、cron ジョブは cron.daily ディレクトリに存在しません。 これは、cronジョブが脱水したwrapperが実行されるまで有効にできないことを確実にします(そして、うまくLet's Encrypt TLS/SSLの証明書が生成されたことを願っています)。

注意: TurnKey Let's Encrypt の統合でワイルドカード証明書を生成するには、使用する必要があります。 DNS-01 検証. Confconsole v2.1 の前の DNS-01 の検証は利用できません(最初に TurnKey v18.0 に表示されます)。

実際にcronジョブが何をしているかについての詳細は、 参照してください ジョブの詳細 以下。

証明書を入手

このオプションを選択すると、サーバーの1つの完全に修飾されたドメイン名(FQDN)を設定できます。

別のオプションは、rootドメインと最大4つのサブドメインを設定することです。

複数のルートドメインと/または4サブドメイン以上を設定したい場合、手動設定が必要です。 参照してください 高度な - 複数のドメイン名の使用 以下。 別のシナリオがカバーされていない場合は、フォーラムにサインアップして投稿してください。

証明書の取得 - HTTP-01

このオプションは、ドメインのパブリックDNSレコードを調べて、適切なチャレンジデータを経由して配信されていることを確認することで、ドメインの所有権を検証します。 サーバの80ポートをポートします。

条件:

  • ポート 80: ポート 80 (デフォルトはバニラ HTTP ポート) は、サーバー上で開いて、一般に公開されている必要があります。
  • DNSレコード: サーバに解決するAuthoritative 'A'/'AAAA' または 'CNAME'レコード(s) (すべてのドメイン/サブドメインのcertsを取得)

港 80: 外部からアクセスできるポートを超えて、既存のWebサーバーの設定の変更は不要です。 トラフィックをHTTPからHTTPにリダイレクトするWebサーバの設定は無視されますので、変更する必要はありません。

DNSの記録(s): DNSレジストラで必要な変更をするだけで、DNSレコードの有効期限を一般のプロパゲートに受けられるようにご注意ください。 DNSレコードが公開されていることを確認するには、「dig」で確認してください。 Googleの無料のオンライン ジグツール.

重要な注意: ドメインネームサーバを正しく設定して、この実行前に80をパブリックに利用できるようにしてください。 失敗すると、Let's Encryptの課題が失敗する(証明書が取得できない)。 繰り返し失敗により、サーバーがブロックされる(週1回)、さらに試みることが原因となります。

証明書の取得 - DNS-01

このオプションは、rootドメインの特別なパブリックDNS TXTレコードを見て、それが適切なチャレンジを含むことを確実にすることで、ドメインの所有権を検証します 外部アクセスはサーバーに必要ないので、内部/イントラネットサーバーに理想的です。このオプションはワイルドカード証明書(例:'*.example.com')もサポートします。

条件:

  • 対応するDNSプロバイダ:ドメインは、登録する必要があります 対応プロバイダ
  • 認証: DNS プロバイダーの API にアクセスするためのユーザー認証および/または API キー (関連)

対応するDNSプロバイダ: 必要なTXT DNSレコードは、DNSレジストラで作成する必要があります。Confconsoleは、レバレッジを有効化します。 脱水剤 どのターンでもレバレッジ dns-lexicon の特長 必要なTXT DNSレコードを作成する。 そのため、ドメインは登録する必要があります。 対応プロバイダ.

資格: 必要なDNSレコードを作成するには、DNSプロバイダ(API経由)へのアクセスが必要です。各プロバイダには異なる要件がありますので、ご相談ください dns-lexicon ドキュメント. そのドキュメントページで、プロバイダを見つけてリンクをクリックします。 これにより、そのページの関連セクションに行くことができます。 関連するフィールドは、ドットポイントとしてフォーマットされ、モノスペースフォント、色付きのオレンジで示されたキーで、その後の説明をします。

config ファイルが無視されるコメント('#' 接頭辞から始まる行)を含む可能性があることに注意してください。以下にいくつかのコンフィグの例を参照してください。

AWS ルート53: (lexicon ドキュメント)

# AWS Route53 example
auth_access_key: YOUR_AWS_ACCESS_KEY
auth_access_secret: YOUR_AWS_ACCESS_SECRET
private_zone: False # generally you'll always want public zone
zone_id: YOUR_ZONE_ID

クラウドフレア: (lexicon ドキュメント)

# Cloudflare example 1 - using global api key
auth_username: YOUR_CF_USERNAME
auth_token: YOUR_CF_API_TOKEN

または

# Cloudflare example 2 - using unscoped API token
auth_token: YOUR_CF_UNSCOPED_API_TOKEN

または

# Cloudflare example 3 - using scoped API token
auth_token: YOUR_CF_SCOPED_API_TOKEN
zone_id: YOUR_CF_ZONE_ID

他のDNSプロバイダについては、該当するドキュメントを参照してください。 リストのプロバイダをクリックして、 DNS Lexicon プロバイダー doc ページ.

特別ノートはワイルドカードの証明書を返します

生成することに注意してください。 ワイルドカード証明書 DNS-01チャレンジメソッドを使うと、ただしか使えません。

ワイルドカード証明書は、 '*' などの '*.example.com' で始まるドメインで生成される特別な証明書です。 サブドメイン(制限あり)にマッチする特別な証明書。例 '*.example.com' は 'www.example.com' や 'blog.example.com' や 'docs.example.com' などのドメインを持つサイトをカバーします。ただし、サブドメインでは同じ cert は動作しません。 '*.example.com' 証明書は 'www.docs.example.com' では動作しません。'www.docs.com' ではワイルドカードの証明書で動作させるには、'*.docs.example.com' の証明書を取得する必要があります。

ワイルドカードドメインを登録すると同時に特定のサブドメインを登録することが可能ですが、ワイルドカードドメインが最初に来なければなりません。 複数のワイルドカードドメインも許可されています。

また、ワイルドカードドメインを登録するとき、脱水はエイリアスを付与する必要があります。 エイリアスが続く「>」でドメインを分離するために、オンラインで指示が表示されます。 必要に応じてConfconsoleは無視して、独自のエイリアスを生成することができます。

エイリアスと消失した使用時に、より高度な機能がスタンドアローンを使用する必要があります。

重要な注意: DNSレジストラ情報が正しいことを確認してください。 誤った認証情報は、Let's Encryptの課題が失敗する原因となります(証明書が取得されません)。 繰り返し失敗により、サーバーがブロックされる(週1回)、さらに試みることが原因となります。

証明書の取得 - 舞台裏で

プロセスはこのように進みます:

  • Confconsole Let's Encryptプラグインはドメイン(サブドメイン)を 名称: /etc/dehydrated/confconsole.domains.txt
  • Confconsole は脱水されたワッパーを呼ぶ
  • dehydrated-wrapper は、ポート 80 でリスニングする webserver を停止します。
  • 脱水・ワッパーチェック 名称: /etc/dehydrated/confconsole.config (ファイルの設定)。存在しない場合は、デフォルトファイルをコピーします。 名称: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.config
  • 脱水・ワッパーチェック 名称: /etc/dehydrated/confconsole.hook.sh (hook script)。存在しない場合、デフォルトファイルをコピーします。 名称: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.hook.sh
  • 脱水・ワッパーチェック 名称: /etc/cron.daily/confconsole-dehydrated (cronスクリプト); 存在しない場合、デフォルトファイルをコピーします。 名称: /usr/share/confconsole/letsencrypt/dehydrated-confconsole.cron
  • dehydrated-wrapper は、脱水、渡る脱水します confconsole.config の仕様, ..hook.sh は、 & confconsole.domains.txtの使い方 (すべて保存されます) 名称: /etc/dehydrated/)
  • 脱水コンタクトLet's Encryptとチャレンジをゲット(ドメインをコントロールする)
  • チャレンジをホスティングするWhilst、add-waterは、チャレンジ(つまり304 - 一時的に移動)以外のすべてのWebトラフィックをWebルートに一時的にリダイレクトします。 シンプルな「本物」メッセージが表示されます。カスタムhtmlページを提供するために、こちらもご覧ください。 高度なカスタムメインメッセージ 以下。
  • ホークスクリプトを介して、脱水は、アドオンサーバ(minimalist python webserver)を使用してLet's Encryptの課題を機能させます。
  • 完了すると、水が殺されます(ホックスクリプト経由)
  • 脱水した書込み証明書を 名称: /etc/ssl/private/cert.pem (ホックスクリプト)。脱水によって生成された元のセルは、 名称: /var/lib/dehydrated/certs/DOMAIN
  • 脱水した手が脱水したワッパーに戻り
  • dehydrated-wrapper は webserver を再起動します。
  • dehydrated-wrapper は、stunnel を再起動します (Webmin と Webshell は新しい cert も使用)
  • 脱水・ワッパー ハンド バック confconsole

ジョブの詳細

cron ジョブは、デフォルト証明書の有効期限を確認できます()名称: /etc/ssl/private/cert.pem)30日以内に期限が切れた場合、脱水・ワッパー(--forceスイッチを使用して)を実行します。

高度なカスタムメインメッセージ

注意して、チャレンジをしている間、add-water は他のすべての URL を web ルートにリダイレクトします。 デフォルトでは、基本的なindex.htmlファイルで単純な「メンテナンス」メッセージが表示されます。

カスタムメッセージを表示したい場合は、デフォルトの値をコピーし、それを微調整するために、カスタムindex.htmlファイルを追加することができます。

mkdir -p /var/lib/confconsole/letsencrypt/
cp /usr/share/confconsole/letsencrypt/index.html \
  /var/lib/confconsole/letsencrypt/index.html

add-water は /var/lib/confconsole/letsencrypt/index.html に存在するか、そうでなければデフォルトに戻ります。

注意: カスタムファイルが名前付けされる必要があります インデックス.html 有効なHTML(およびCSS)のみを含みます。PHPまたは他のサーバーのサイドランスはサポートされていません。埋め込み(つまり、インライン) JavaScriptは、処理されたクライアント側としてサポートされています。

高度な - 複数のドメイン名の使用

対話型Confconsoleプラグインは、最大4サブドメインで単一のドメインのみをサポートしています。 しかし、脱水したwrapperは複数のルートドメイン、および複数のサブドメインを扱うことができます。 手動で設定調整を複数の場所で行なう必要があるサポート:

  • 追加ドメインを追加 名称: /etc/dehydrated/confconsole.domains.txt
    • 各行がベースドメインから始まることを確認し、サブドメインのスペース区切られたリストに従ってください。
    • WARNING: confconsoleのLet's Encryptプラグインを再実行すると、カスタム追加ドメインが削除されます!
  • Webserver の仮想ホストを調整して、関連する証明書を使用できます。 名称: /var/lib/dehydrated/certs/DOMAIN. 各ドメインは、サブディレクトリを下回って所有している 名称: /var/lib/dehydrated/certs/.
  • デフォルトでは、設定された最後のドメイン(および任意のサブドメイン)は、Webmin&Webshell(および管理者、それが含まれている場合)のために動作するドメインになります。 この動作を変更するには、ホックスクリプトを調整したり、ドメインの注文を単に並べ替えたり、Webmin&Webshellを使用できるかを、最後に設定できます。
  • 注意: cron ジョブは、ジョブの有効期限のみをチェックします。 名称: /etc/ssl/private/cert.pem. ですから、ホックスクリプトをアップデートしなくなったら 名称: /etc/ssl/private/cert.pem、更新している証明書の有効期限をチェックするために、cronジョブを調整する必要があります。 そのため、毎日認証の更新が行われるのに失敗します。これにより、サーバーを一時的にブロックして Let's Encrypt サーバーにアクセスすることができます。
TURNKEYGNU / LINUX

ゼロから始めずに、自分のインフラを管理できます。

TurnKey を見る
概要ドキュメントよくある質問ブログGitHub
フリーでオープンソース初期設定から安全すぐに展開可能