Ubuntu 14.04のHAProxyにSSL終了を追加する

この記事では、HTTPS経由のトラフィックを暗号化するために、HAProxyでSSLターミネーションを設定する方法について説明します。新しいフロントエンドには自己署名SSL証明書を使用します。HAProxyが既にインストールされ、標準のHTTPフロントエンドで構成されていることを前提としています。

必要条件

  • Vultr VPS
  • HAProxy 1.5
  • Ubuntu 14.04 LTS(他のバージョンとディストリビューションで動作するはずです)

証明書と秘密鍵を生成する

次のコード行を実行して、HAProxyで機能する秘密鍵と自己署名証明書を生成します。

openssl genrsa -out /etc/ssl/private/server.key 2048
mkdir /etc/ssl/csr
openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/csr/server.csr
openssl x509 -req -days 365 -in /etc/ssl/csr/server.csr -signkey /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt
cat /etc/ssl/certs/server.crt /etc/ssl/private/server.key > /etc/ssl/certs/server.bundle.pem

HAProxyを構成する

最初に行うべきことは、SSLv3が無効になっていることを確認することです。POODLE攻撃により、SSLv3は安全とは見なされなくなりました。すべてのアプリケーションとサーバーはTLS 1.0以上を使用する必要があります。お好みのテキストエディタを使用して、ファイルを開きます/etc/haproxy/haproxy.cfg。内部ssl-default-bind-options no-sslv3で、globalセクションの下の線を探します。表示されない場合は、セクションの前のdefaultsセクションの最後にその行を追加してください。これにより、SSLv3がグローバルに無効になります。フロントエンドセクション内で設定することもできますが、グローバルに無効にすることをお勧めします。

HTTPS設定に進みます。という名前の新しいフロントエンドセクションを作成しますweb-https

frontend web-https 
        bind public_ip:443 ssl crt /etc/ssl/certs/server.bundle.pem 
        reqadd X-Forwarded-Proto:\ https 
        rspadd Strict-Transport-Security:\ max-age=31536000 
        default_backend www-backend 

説明する:

  • bind public_ip:443public_ipVPSパブリックIPに変更)は、ポート443(HTTPSポート)のIPアドレスに送信されるすべての要求を待機するようHAProxyに指示します。
  • ssl crt /etc/ssl/certs/server.bundle.pem 以前に生成されたSSL証明書を使用するようにHAProxyに指示します。
  • reqadd X-Forwarded-Proto:\ https 着信リクエストの最後にHTTPSヘッダーを追加します。
  • rspadd Strict-Transport-Security:\ max-age=31536000 ダウングレード攻撃を防ぐためのセキュリティポリシー。

バックエンドセクションに追加の変更を加える必要はありません。

HAProxyでデフォルトでHTTPSを使用する場合redirect scheme https if !{ ssl_fc }は、www-backendセクションの先頭に追加します。これにより、HTTPSリダイレクトが強制されます。

設定を保存して実行service haproxy restartし、HAPRoxyを再起動します。これで、SSLエンドポイントでHAProxyを使用する準備がすべて整いました。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。