2017-03-23 2 views
1

[セキュア:私のプロキシサーバがホスト名を持っていますが、リモートサーバーにはない私はを通じて安全にSSLをサポートしているApacheでプロキシ設定を確立するために、すべての方法をしようとしているSSLのApacheプロキシ

Client <--> Proxy @ somehostname.com <--> Server @ 123.45.67.89 

注意。クライアントとプロキシ間のSSL設定は、暗号化の設定でうまくいきます。しかし、私はプロキシとリモートサーバーの間の接続を保護するのに苦労しています。

リモートサーバーにはホスト名がなく、暗号化でIP用の証明書だけが発行されないため、自己署名証明書を生成し、証明書をプロキシにコピーして証明書を信頼するようにしました1。残念ながら私は方法が分かりません。

プロキシはちょうどすべての証明書を信頼するように私はちょうど、接続は動作しますが、これらの証明書のチェックを無効にした場合:

SSLProxyCheckPeerCN off 
SSLProxyCheckPeerName off 

暗号化は、私の理解の信憑性に、正常に動作しますが損なわと私はのMITM攻撃の対象としていますされますハンドシェイク中に。これは理想的ではありません。

は代わりに、私は、

SSLProxyCACertificateFile /path/to/cert.pem 

と私の自己署名証明書を信頼するようにApacheを指示し、その後

SSLProxyVerify require 

で有効な証明書を強制しようとしましたが、私にもかかわらず、明示的に証明書をリストアップしましたSSLProxyCACertificateFileのドキュメントで「これらはリモートサーバー認証に使用されています」と表示されているため、信頼できないようです。

プロキシとリモートサーバーの間の接続が安全であることを確認する方法はありますか?たとえば、特定の証明書を使用して常にプロキシに接続するようにApacheを強制する方法がありますか?

答えて

1

SSLProxyCACertificateFileで証明書を追加することは、名前チェックをスキップしても意味がありません。したがって、カスタム証明書が機能するためには、正しい名前または私の場合はIPに発行する必要があります。そのIPに新しい証明書を発行した後、私の設定は今すぐ動作します。関連する部分は次のとおりです。

<VirtualHost *:443> 
    ServerName somehostname.com 
    SSLProxyEngine On 
    SSLProxyVerify require 
    SSLProxyCACertificateFile /path/to/custom_cert.pem 
    SSLProxyCheckPeerCN on # or omit, default is on 
    SSLProxyCheckPeerName on # same 
    ProxyPass/https://123.45.67.89/ 
    ProxyPassReverse/https://123.45.67.89/ 
</VirtualHost> 
関連する問題