GH GambleHub

TLS証明書と自動更新

なぜ必要なのか?

TLSはトラフィック「kliyent↔servis」を暗号化し、サーバー(およびmTLS-クライアント)の信頼性を確認し、なりすましからも保護します。主なリスク:証明書の遅延、弱い鍵、誤ったトラストチェーン、手動手順。この記事の目的は、証明書が常に関連性があり、ユーザーに気づかれずに回転が通過するアーキテクチャを記述することです。

基本的なコンセプト

CA/署名:認証機関(公的または内部)。
チェーン(フルチェーン):リーフ証明書+中間+ルート(通常はクライアントリポジトリでルート)。
SAN (Subject Alternative Name): 1つの証明書(マルチSAN)のドメイン/IPのリスト。
ワイルドカード:'。example。com'-多くのサブドメインに便利で、DNS検証が必要です。
OCSPステープル:サーバーは最新の失効ステータスを適用します。外部OCSPへのレイテンシーと依存性を低減します。
HPKP:廃止/未使用;代わりに、CTログとキー衛生。
CT(証明書の透明性):公的発行ログ-偽のリリースを制御するために重要です。

暗号プロファイルとキー

アルゴリズム:
  • ECDSA (P-256)-高速でコンパクト。現代顧客のために好まれて。
  • RSA-2048/3072-まだ互換性があります。dual-cert (RSA+ECDSA)を保持できます。
  • キー生成:ターゲット側のみ(ネットワーク上でプライベーターを転送しない)、アクセス権('0600')を保護します。
  • HSM/KMS:重要な領域(payment/PII)の場合、HSM/KMSにキーを格納し、監査操作を有効にします。
  • 寿命:短い証明書(内部の90日/30日)は頻繁な回転を促進し、妥協の危険を減らします。

TLS管理のアーキテクチャモデル

1.ACMEによる公開CA (Let's Encrypt/Buypass/etc。)

検証:HTTP-01 (Web サーバー/Ingress経由)またはDNS-01(ワイルドカード/ストリーム外ドメイン用)。
長所:自由/自動化された、広い信頼。短所:外部依存関係。

2.社内CA

ツール:HashiCorp Vault PKI、 Smallstep (step-ca)、 Microsoft AD CS、 CFSSL。
長所:カスタムポリシー、mTLS、短いTTL、内部ドメインのリリース。短所:ルート配布、信頼管理。

3.Hybrid(ハイブリッド)

外部ユーザーのための公開CA;内部CA-サービス・ツー・サービス(mTLS)、クラスタ間チャネルおよび管理者向け。

自動更新パターン(更新)

一般原則

更新しきい値:有効期限の30日前に開始≤ます。重要なサービスのために-'≤ 45'日。
ゼロダウンタイム:新しい証明書、原子交換、接続を壊すことなくスムーズなリロードを発行します。
ダブルホールド(青/緑):現在のcertと次のcertを格納します。スイッチング-symlinkまたはバージョン管理されたシークレットを介して。
警告:45/30/14/7/3/1日の警告;ACMEチャレンジの失敗時に別のアラートが発生します。

ACMEクライアントとそのアプリケーション

certbot/acme。sh/lego: VM/bare-metalのライトエージェント。
cert-manager (Kubernetes): Issuer/ClusterIssuerを操作するオペレータ;Secretへのリリース/更新と書き込みを自動化します。
step-ca/Vault Agent:短いTTLで自動リリース/回転、キーとチェーンを更新するためのサイドカーパターン。

Kubernetesのプロセス

cert-manager (Let's Encryptの例HTTP-01 Ingress経由):
yaml apiVersion: cert-manager. io/v1 kind: ClusterIssuer metadata:
name: le-http01 spec:
acme:
email: devops@example. com server: https://acme-v02. api. letsencrypt. org/directory privateKeySecretRef:
name: le-account-key solvers:
- http01:
ingress:
class: nginx
証明書の要求:
yaml apiVersion: cert-manager. io/v1 kind: Certificate metadata:
name: app-cert namespace: prod spec:
secretName: app-tls dnsNames:
- app. example. com issuerRef:
name: le-http01 kind: ClusterIssuer privateKey:
algorithm: ECDSA size: 256 renewBefore: 720h # 30 дней

"Secret'を更新すると、NGINX-Ingressのホットスワップが自動的に発生します。'ssl-ecdh-curve: secp256r1'を追加し、/ConfigMapアノテーションでOCSPステープリングを有効にします。

VM/ベアメタルのプロセス

Certbot (HTTP-01):
bash sudo certbot certonly --webroot -w /var/www/html -d example. com -d www.example. com \
--deploy-hook "systemctl reload nginx"

systemdタイマーによる定期的な'certbot renew'。
ワイルドカードの場合は、DNS-01(プラグインプロバイダ)と同様の'--deploy-hook'を使用します。

アクメだよ。sh (DNS-01、ワイルドカード):
bash export CF_Token="" # example for Cloudflare acme. sh --issue --dns dns_cf -d example. com -d '.example. com' \
--keylength ec-256 --ecc \
--reloadcmd "systemctl reload nginx"

NGINX原子交換

'fullchainを維持します。「pem」 「privkey」pem'は安定したパスの下にあり(バージョン管理されたファイルへのsymlink)、' nginx -s reload'。

内部PKIとmTLS

HashiCorp Vault PKI(サンプルロール):
bash vault secrets enable pki vault secrets tune -max-lease-ttl=87600h pki vault write pki/root/generate/internal common_name="Corp Root CA" ttl=87600h vault write pki/roles/service \
allowed_domains="svc. cluster. local,internal. example" allow_subdomains=true \
max_ttl="720h" require_cn=false key_type="ec" key_bits=256

自動リリース:Vault Agent Injector (K8s)またはサイドカーを介して。アプリケーションは/FS-watcherファイルからcertを再読み込みます。
短いTTL:頻繁な回転を促し、盗まれたキーの価値を減らす24-720時間。
mTLS:特定のサービス/ロールのクライアント証明書を発行します。入力-ingress/sidecar-proxyの相互TLS。

安全な操作

秘密の共有:秘密鍵-ホスト/ポッドでのみ、最小権限の原則に従ってアクセスできます。
ファイルの権利:'600'キーのための;owner-プロセスユーザー。
猶予期間:DNS/ACME/プロバイダの障害を考慮するのに十分な'renewBefore'を設定します。
OCSPステープル:前面でオンにします。応答の鮮度を監視します(通常12-72時間)。
HSTS:(開始時に'preload'なしで)徐々にオンにし、すべてのコンテンツの正しいHTTPS配信を確認します。
デュアル証明書(RSA+ECDSA):互換性とパフォーマンスを向上させます。現代の顧客にECDSAを与えて下さい。

モニタリングとSLO

メトリクスとチェック:
  • 各ドメイン/シークレットの有効期限(ゲージ)の前日;SLO: 「no cert from <7 days to expiry」。
  • チェーンの有効性(リンク)、必要なドメイン/IPへのSANの準拠。
  • OCSPステープル状態(応答の鮮度)。
  • ACMEチャレンジの成功/失敗の割合。
  • Leitency TLSハンドシェイク、プロトコルバージョン/暗号(監査)。
アラート(レベルの例):
  • 警告:有効期限まで30日。
  • Crit: 7日/失敗'更新'。
  • ページ:72 時間/prod/no OCSPステープリングのチェーンが無効です。

インシデントとロールバック

証明書の遅延:一時的に手動で再発行してデプロイし、RCAを修正します(更新が機能しなかった理由、DNS ブロック/API制限)。
重要な妥協点:即時の再発行/失効、秘密の回転、アクセス監査、DNS プロバイダ/ACMEアカウントトークンの回転。
誤ったチェーン:正しい「フルチェーン」の緊急入金、前線の強制リロード。
DNSプロバイダへのロックイン:バックアップ検証パス(HTTP-01)またはセカンダリDNSを保持します。

自動更新の実装チェックリスト

1.モデルを選択します(ACME/内部 PKI/ハイブリッド経由で公開CA)。
2.暗号プロファイルを定義します。ECDSA-P256、必要に応じてRSA-2048でデュアル証明書。
3.自動エージェント(cert-manager、 certbot、 acme)を設定します。sh、 Vault Agent)。
4.ゼロダウンタイムの置換(symlinkパターン、hot-reload ingress/NGINX/Envoy)を整理します。
5.OCSPステープリングとHSTS(段階的に)をオンにします。
6.アラートの日付とチャレンジのステータスを追加します。SLOを規定します。
7.壊れ目ガラスおよび手動解放プロセスを文書化して下さい。
8.「偽の」演習を行う:壊れたDNS-01、 ACME秋、期限切れのルート/中間。
9.プライベートキーへのアクセスを確認し、DNSプロバイダートークンとACMEアカウントを回転させます。

iGaming/Fintechの機能

PCI DSS/PII:厳格な暗号スイート、強制TLS 1。2+/1.3、セキュリティ上の妥協なく弱い暗号/圧縮、セッション再開をオフにします。
ドメインセグメンテーション:支払いサブドメインと管理者のための個別の証明書。コンテンツプロバイダ-孤立したチェーン。
監査とロギング:リリース/リコール/ローテーションを記録します。CI/CDアーティファクトに署名します。
複数の地域性:地域間の障害に依存しないように、地域へのローカル発行者。

サンプル構成

NGINX (RSA+ECDSA、 OCSPステープリング)

nginx ssl_protocols TLSv1. 2 TLSv1. 3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ecdh_curve secp256r1;

ssl_certificate   /etc/nginx/certs/app_ecdsa/fullchain. pem;
ssl_certificate_key /etc/nginx/certs/app_ecdsa/privkey. pem;
ssl_certificate   /etc/nginx/certs/app_rsa/fullchain. pem;
ssl_certificate_key /etc/nginx/certs/app_rsa/privkey. pem;

ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security "max-age=31536000" always;

OpenSSL: CSR (ECDSA-P256)

bash openssl ecparam -name prime256v1 -genkey -noout -out privkey. pem openssl req -new -key privkey. pem -out csr. pem -subj "/CN=app. example. com" \
-addext "subjectAltName=DNS:app. example. com,DNS:www.example. com"

CFSSL: プロファイルと発行

json
{
"signing": {
"profiles": {
"server": {
"usages": ["digital signature","key encipherment","server auth"],
"expiry": "2160h"
}
}
}
}
bash cfssl gencert -profile=server ca. json csr. json      cfssljson -bare server

よくあるご質問

ワイルドカードが必要ですか?
新しいサブドメインが頻繁に表示される場合は、はい(DNS-01経由)。それ以外の場合は、明示的なドメインにマルチSANを使用します。

選択するもの:cert-managerまたはcertbot?
Kubernetes→cert-manager。VM/microservices out of K8s→certbot/lego/acme。SH。内部PKI→Vault/step-ca。

TTLは1日に削減できますか?
内部mTLSの場合、はい、オートメーション/サイドカーが回転を保証し、アプリケーションがホットリロードできる場合。

どのようにDNS-01を確保するには?
ゾーンへの個別のトークン/最小アクセス、キーの回転、IP APIアクセスの制限、監査。

合計

信頼できるTLS管理は、正しい暗号プロファイル、自動リリースと更新、ゼロ・ダウンタイムの回転、オブザビリティ、明確なインシデント対応手順の組み合わせです。ACME/PXIパイプラインを構築し、厳格な警告を追加し、定期的に「緊急」シナリオを訓練します。期限切れの証明書はもはや夜間ページャーのソースになりません。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。