Nginx を使用して SSL 証明書を動的にロードおよび更新する方法

PHPz
リリース: 2023-08-02 09:05:12
オリジナル
2397 人が閲覧しました

Nginx を使用して SSL 証明書を動的にロードおよび更新する方法

概要:
現代のインターネット環境では、ユーザー データのセキュリティを保護することが非常に重要です。その中でも、SSL/TLS 証明書を使用して Web サーバーとの通信を暗号化する方法が一般的です。ただし、従来の方法では、Nginx 構成ファイルを手動で変更し、サーバーをリロードする必要があるため、証明書の更新時に Web サイトにダウンタイムが発生します。この記事では、Nginx モジュールとスクリプトを使用して SSL 証明書を動的に読み込み、更新し、Web サイトの安定性と可用性を向上させる方法を紹介します。

実装プロセス:

  1. 必要な依存関係のインストール:
    まず、Nginx と OpenSSL がサーバーにインストールされていることを確認します。さらに、LuaJIT 開発パッケージもインストールする必要があります。

    sudo apt-get install nginx openssl libluajit-5.1-dev
    ログイン後にコピー
  2. 証明書保管ディレクトリの作成:
    SSL 証明書とキー ファイルを保管するディレクトリをサーバー上に作成します。

    sudo mkdir -p /etc/nginx/ssl
    ログイン後にコピー
  3. Lua スクリプトの作成:
    SSL 証明書を動的にロードおよび更新するための Lua スクリプトを作成します。 「ssl_cert_updater.lua」という名前の新しいファイルを作成し、次のコードを追加します。

    local ssl_cert_path = "/etc/nginx/ssl/cert.pem"
    local ssl_key_path = "/etc/nginx/ssl/key.pem"
    
    local function update_ssl_cert()
        -- 从远程服务器下载最新的SSL证书文件和密钥文件,并保存到指定路径
        os.execute("wget -O " .. ssl_cert_path .. " https://example.com/cert.pem")
        os.execute("wget -O " .. ssl_key_path .. " https://example.com/key.pem")
        -- 重新加载Nginx配置文件
        os.execute("nginx -s reload")
    end
    
    update_ssl_cert()
    ログイン後にコピー
  4. Nginx 構成ファイルを更新します。
    Nginx 構成ファイルを編集し、Lua のエントリを追加します。脚本。デフォルトの Nginx 構成ファイル「/etc/nginx/nginx.conf」を開き、「http」モジュールの場所を見つけて、その中に次のコードを追加します。

    lua_shared_dict ssl_cert_cache 10m;
    lua_ssl_trusted_certificate /etc/ssl/certs/ca-certificates.crt;
    lua_ssl_verify_depth 3;
    init_by_lua_block {
        require "ssl_cert_updater"
    }
    ログイン後にコピー

    このコードは、Lua スクリプトをロードし、初期化してください。

  5. スケジュールされたタスクを構成する:
    Crontab またはその他のスケジュールされたタスク ツールを使用して、Lua スクリプトを定期的に実行します。 Crontab ファイルを編集します:

    crontab -e
    ログイン後にコピー

    次の行を追加します (例は毎週月曜日の午前 2 時に実行します):

    0 2 * * 1 lua /path/to/ssl_cert_updater.lua
    ログイン後にコピー
  6. テスト更新:
    さて、 Lua スクリプトを手動で実行して、更新が適切に機能しているかどうかを確認できます:

    lua /path/to/ssl_cert_updater.lua
    ログイン後にコピー

要約:
上記の手順を通じて、Nginx の SSL 証明書の動的読み込みと更新を正常に実装しました。 。証明書の有効期限が切れたり、更新が必要になったりすると、スクリプトは自動的に最新の証明書ファイルをダウンロードし、Nginx サーバーをリロードします。これにより、Web サイトのダウンタイムが回避され、ユーザーデータが安全に保たれます。 Lua スクリプトとスケジュールされたタスクを使用することで、証明書の更新を自動化し、Web サイトの安定性と可用性を向上させることができます。

この記事では基本的な例のみを示しており、具体的な実装計画は実際のニーズに基づいてさらに最適化できることに注意してください。同時に、証明書のダウンロード元 URL が信頼できるものであり、サーバーのセキュリティが適切に評価され、保護されていることを確認してください。

以上がNginx を使用して SSL 証明書を動的にロードおよび更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート