ApacheリバースプロキシSSL

ApacheリバースプロキシSSL

httpリクエストに対して次のReverseProxyを設定しました。

NameVirtualHost *:80
<VirtualHost *:80>
ServerName sub.domain.com
ProxyRequests Off
ProxyVia Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>                              
ProxyPass / http://localhost:5010
ProxyPassReverse / http://localhost:5010/
</VirtualHost>

私の質問は、私のバックエンド(場所:5010)がhttpsをサポートしていない場合、httpsリクエストをどのように処理できるかということです。

例: クライアント---https--->Apache----http---->サービス

ベストアンサー1

クライアントとこのhttpdインスタンス間の接続に使用される転送方法は、httpdインスタンスとプロキシサーバー間で使用される転送方法とは完全に独立しています。つまり、HTTPS設定にプロキシライン(少なくともProxyPassおよび)を追加するだけです。ProxyPassReverse

NameVirtualHost *:443
<VirtualHost *:443>
    ServerName sub.domain.com

    # Certificate stuff goes here...
    SSLEngine on
    SSLCertificateFile              /etc/pki/http/certs/sub.domain.com.crt
    SSLCertificateKeyFile   /etc/pki/http/private/sub.domain.com.key
    SSLCertificateChainFile /etc/pki/http/certs/interims-cert.crt
    SSLProtocol All -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCipherSuite +EDH:HIGH:!LOW:!ADH:-MEDIUM:RC4+SHA

    ProxyRequests Off
    ProxyVia Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>                              
    ProxyPass / http://localhost:5010
    ProxyPassReverse / http://localhost:5010/
</VirtualHost>

このSSL*ガイドラインは例示目的のためにのみ提供されています! HTTPS用のhttpdを安全に構成する方法を確認する必要があります。

おすすめ記事