Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法

1. 原因

公式の cerbot は面倒すぎます。野生の成長よりもさらに悪い acme.sh の使用は推奨されません。ここでは、Docker で cerbot を実行して、Let's Encrypt から永久無料 SSL 証明書を取得する方法を紹介します。

2. モデルの選択

cerbot 証明書は日付を自動的に更新しませんが、acme.sh にはこの機能があり、期限切れのドメイン名を自動的に検出し、毎日午前 0 時に更新します。

cerbot を実行するために docker を選択すると、サーバー内の構成と無意味なプログラムを最小限に抑えて管理が容易になります。例えば、Let's Encryptに必要なPython 2.7、git、pipをホストマシンにインストールする必要はなく、コンテナが自動的に構成します。

オリジナル記事 https://github.com/acmesh-official/acme.sh/wiki/Run-acme.sh-in-docker

3. イメージをプルする

$ docker pull neilpang/acme.sh

docker コマンドを DNS モードで実行する

$ docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 -e Ali_Key="xxxxxx" \
 -e Ali_Secret="xxxx" \
 neilpang/acme.sh --issue --dns dns_ali -d domain.cn -d *.domain.cn

成功すると、証明書は out フォルダに保存されます。上記の最初の行「$(pwd)/out」を保存先のパスに変更して、パスを指定することもできます。

4. 注記

--dns dns_ali

ドメイン名の DNS モードに応じて選択する必要があります。明らかに、これは Alibaba です。最初の2つの設定はAli_KeyとAli_Secretです

Ali_Key、Ali_Secret

Alibaba Cloudバックエンドから取得する必要がある

ドメイン名の DNS モードがわからない場合は、https://github.com/acmesh-official/acme.sh/wiki/dnsapi で確認できます。

ドメイン名のDNSモードと関連設定を取得する方法については、ドメイン名のカスタマーサービスに直接お問い合わせください。

テンセントを例に挙げましょう

$ docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 -e DP_Id="xxxxxx" \
 -e DP_キー="xxxx" \
 neilpang/acme.sh --issue --dns dns_dp -d domain.cn -d *.domain.cn

テンセントがDNSPodを買収したので、dns_dpになります

最初はTX_Id、TX_Key、dns_txなどだと思いました。

いろいろ調べてみたところ、Alibaba サーバーは正常に動作しているものの、手順に問題がないことがわかりました。

そこで私は会社にドメイン名のアカウントを取得するよう依頼し、その後テンセントのカスタマーサービスに問い合わせてこの件について調べてもらいました。

もちろん、これはテンセントとは何の関係もありません。私を騙した会社に責任があるのです。

私はこれとは何の関係もありません

5. コマンド

docker run --rm のコマンドは誰でも知っています。実行したら終了するだけです。これにより、ハンマーが実行され、ssh 証明書が自動的に更新されます。

方法1

docker run --rmは使用せず、docker runのみを使用してください。

利点はシンプルであることです。欠点は、この目的専用のコンテナが使用されるため、リソースが無駄になることです。

方法2

スケジュールされたタスクはdocker run --rmを実行し、元の例は次のとおりです。

#cronジョブを実行する
docker run --rm -it \
 -v "$(pwd)/out":/acme.sh \
 --net=ホスト\
 neilpang/acme.sh --cron

実は、--cron は Linux の crontab パラメータであり、具体的な使い方は面倒ではありません。

crontabを使いたい場合はcrontabを使用してください

気に入らない場合は、ブログの後半を読んでください。

方法3

これをdockerデーモンに結び付けます。結局のところ、デーモンは実行されている必要があるため、リソースの無駄にはなりません。

これはacme.shに推奨されるアプローチです

元のテキストと同じ例

$ docker run --rm -itd \
 -v "$(pwd)/out":/acme.sh \
 --net=ホスト\
 --name=acme.sh \
 neilpang/acme.sh デーモン

6. 最終結果

$ docker run --rm -itd \
 -v "$(pwd)/out":/acme.sh \
 -e DP_Id="xxxxxx" \
 -e DP_キー="xxxx" \
 neilpang/acme.sh --issue --dns dns_dp -d domain.cn -d *.domain.cn デーモン

Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法についての記事はこれで終わりです。Docker で Let's Encrypt から永久無料 SSL 証明書を取得する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • ルート権限なしでログインするためのDockerソリューション
  • Dockerでmysqlのルートパスワードを変更する方法
  • Docker を使用してコンテナ内のルート パスワードを変更する方法
  • Dockerコンテナでルート権限を取得する方法
  • docker cp ファイルをコピーしてコンテナに入る
  • Dockerはコンテナに入るためにルートを使用する
  • Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策
  • Dockerに証明書を追加する方法

<<:  jQueryは画像の強調表示を実現します

>>:  MySQLの不合理なMaxIdleConnsにより接続が短くなる

推薦する

発生したブラウザの互換性の問題と解決策(推奨)について

序文:先週の日曜日、先輩から3ページ作るのを手伝って欲しいと頼まれました。データのやり取りなどはなく...

jQueryはすべての選択と逆選択操作ケースを実装します

この記事では、全選択と逆選択操作を実装するためのjQueryの具体的なコードを参考までに共有します。...

MySQL 学習: 初心者のための 3 つのパラダイム

目次1. パラダイム基盤1.1 パラダイムの概念2. 3つの主要なパラダイム2.1 3つの主要なパラ...

Docker x509 の安全でないレジストリ問題を解決する

Docker をインストールした後、会社が構築したプライベート サーバー Harbor からプルしよ...

データベースのインデックス作成に関する知識ポイントのまとめ。必要な情報はすべてここにあります。

データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

VMware での Linux CentOS6.9 インストール グラフィック チュートリアル

技術初心者として、初めて Linux システムをインストールするプロセスを記録しています。まず、Wi...

VUE+CanvasはシンプルなGobangゲームの全プロセスを実現します

序文レイアウトの点では、Gobang はランダムな動きを目的とするゲームよりも実装がはるかに簡単で、...

Vueモバイル端末の適応化問題の詳細説明

1. vue uiでプロジェクトを作成する 2. 基本設定項目を選択する 3. プロジェクトを実行す...

面白いウェブサイトをデザインするための方法とテクニック(写真)

他の人から「つまらない」とか「時代遅れ」というフィードバックを受けて、それを変更しようとしたのに、更...

nginxの基礎を学ぶ

目次1. nginx とは何ですか? 2. nginx で何ができるのか? 2.1 フォワードプロキ...

要素UIポップアップコンポーネントをカプセル化する手順

el-dialogをコンポーネントとしてカプセル化するelement-ui を使用する場合、ポップア...

カルーセル効果を書くためのjs

この記事では、カルーセルマップの効果を実現するためのjsの具体的なコードを参考までに共有します。具体...

Vueの監視プロパティの詳細な説明

目次Vue モニターのプロパティリスナープロパティとは何ですか?リスニングプロパティと計算プロパティ...

MySQLデータベースの共通操作スキルのまとめ

この記事では、MySQL データベースの一般的な操作テクニックをまとめます。ご参考までに、詳細は以下...