当社では、TLS 1.xをサポートしていないかなり古いアプリケーションをサポートする必要があります。アプリケーションは、クラウド(会社のセキュリティ境界の外側)にあるSalesforceに要求を送信します。そのために、アプリケーションはリクエストを会社のプロキシに送信し、それをクラウドに送信します。
これで問題は、SalesforceがSSL3(このアプリケーションが使用する)を無効にし、このアプリケーションにTLS 1.1を介して接続する必要があることです。
この問題を解決するために私が考えることができる唯一の方法は、このアプリケーションの前に転送プロキシを配置し、要求ヘッダーを変更してTLSベースに追加し、要求を受け入れ、会社プロキシに転送してSalesforceに送信します。
設定されたVirtualHostは次のとおりです。
<VirtualHost _default_:12086>
# Put access log messages in a separate location
ErrorLog logs/FWDPROXY_UAT_SF_error_log
# Now configure the reverse proxy part
<IfModule mod_proxy.c>
# Enable forward proxy requests
ProxyRequests On
# Allows reverse proxying to https locations.
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPreserveHost On
# Allow requests from selected hosts or domains
<Proxy *>
Order Allow,Deny
Allow from all
</Proxy>
<Location />
Order allow,deny
Allow from all
</Location>
ProxyVia On
AllowCONNECT 80
# This is the main proxy configuration
ProxyPass / http://10.54.167.70:80/
ProxyPassReverse / http://10.54.167.70:80/
</IfModule>
</VirtualHost>
10.54.167.7は企業代理店です。これをテストしたときに表示されるエラーは次のとおりです。
[Wed Feb 01 13:58:39 2017] [debug] mod_proxy_connect.c(122): proxy: CONNECT: connecting test.salesforce.com:443 to test.salesforce.com:443
[Wed Feb 01 13:58:39 2017] [error] [client 10.49.36.131] proxy: DNS lookup failure for: test.salesforce.com returned by test.salesforce.com:443
私の転送エージェントがSalesforceホスト名を解決しようとしているようですが、それを会社エージェントに転送したいと思います。
どんな提案がありますか?ありがとうございます。
答え1
- アプリケーションでパートナーの配信URLを変更し、それをApacheサーバーに設定します(例:http://your_apacheserver:8000/receive)
- Apacheサーバーのバージョンは2.4.25で、httpd-ssl.confを次のように変更します。