私はHAProxyがSSLを終了するように構成しているので、購入したSSL証明書を構成する場所は1つだけです。ただし、バックエンドサーバーへの接続もSSLで暗号化することをお勧めします。
私が見つけた1つの提案は、バックエンドサーバーで自己署名証明書を作成し、各サーバー行で「何も検証しない」を設定することです。 ...したがって、ブラウザからHAProxyへの接続には、購入した公式のSSL証明書が使用されますが、バックエンドサーバーへのHAProxyへの接続には、自己署名証明書が使用されます。自己署名証明書の利点は、無料で更新やメンテナンスが不要なことです(私は有効期限をはるかに先に設定でき、毎年新しいものをインストールする必要を回避できます)。ただし、当然のことながら、これはMITM攻撃のバックエンドを開くものであり、私が読んだいくつかのソースでは推奨されていません。
バックエンドサーバーで自己署名証明書を使用できるようにHAProxyを構成できますが、おそらくHAProxyサーバーで自己署名証明書をホワイトリストに登録できますか? ...したがって、HAProxyからバックエンドへの接続は暗号化され、MITM攻撃に対して脆弱ではなく、HAProxyはバックエンドサーバーからの自己署名証明書を信頼することを知っています。
私が説明していることは可能ですか?私はHAProxy SSLターミネーションが初めてなので、助言をいただければ幸いです。
私の構成の関連部分は次のとおりです:
frontend www-in
bind *:80
bind *:443 ssl crt /etc/ssl-keys/my-public-ssl-key.pem no-sslv3
mode http
default_backend https-backend
# force redirect to https
redirect scheme https if !{ ssl_fc }
backend https-backend
balance leastconn
server web1 1.1.1.1:443 check ssl verify none
server web2 2.2.2.2:443 check ssl verify none
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
この質問は、実際にはHAProxy
にリンクしているのではなく、証明書および認証局の管理全般に関連しています。
これを述べていないため、使用しているOSはわかりませんが、それがLinuxフレーバーである場合(ただし、以下はDebian
および派生物に適用されます):
パッケージca-certificates
がインストールされていることを確認してください。
独自の 認証局 (ca)を使用して証明書を作成しています。
このCAのyour ca root cert
を取得し、/usr/local/share/ca-certificates/name-of-your-ca/
の中に入れます。 (フォルダname-of-your-ca
を自分で作成する必要がある場合があります。)your ca root cert
に.crt
拡張子が付いていることを確認してください。
(デフォルトでは、/usr/local/share/ca-certificates/
はroot:staff
が所有するため、Sudo
またはroot
を使用してこれを行います。)
update-ca-certificates
を実行します(Sudo
/as root
を使用)。
実行後、/etc/ssl/cert/your-ca-root.pem
にシンボリックリンクされたファイル/usr/local/share/ca-certificates/name-of-your-ca/your-ca-root.crt
が存在するはずです。
HAProxy
での検証と利益を有効にします。