0

https://domainname.comでドメインをヒットしました。これに対する $_SERVER レスポンスは次のとおりです。

Array
(
    [UNIQUE_ID] => VcmHo6LRO1IAAB-fDU0AAAAK
    [SCRIPT_URL] => /
    [SCRIPT_URI] => http://DOMAIN/
    [HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
    [HTTP_X_FORWARDED_FOR] => 27.106.8.158
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    [HTTP_SSLCLIENTCERTSTATUS] => NoClientCert
    [HTTP_X_FORWARDED_PROTO] => https
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
    [HTTP_SSLCLIENTCIPHER] => SSL_ECDHE_RSA_WITH_AES_256_CBC_SHA, version=TLSv1.2, bits=256
    [HTTP_HOST] => DOMAIN NAME
    [HTTP_SSLSESSIONID] => 93C33C49696542DC405250B49D36C222CBC06F747494EB56BB5C756A59DF8419
    [HTTP_X_CLUSTER_CLIENT_IP] => 27.106.8.158
    [HTTP_COOKIE] => fbm_153033148171841=base_domain=.DOMAIN; PHPSESSID=6gpp73p5k5ce4lg5lqut4ql3i5; PHPSESSID=v0vr962t7vtdtggo5tush5ndc1; X-Mapping-fjhppofk=843133EAD64CFF0FA30A00FC3D699430; fbsr_153033148171841=2MX-iaC6soGRrwIGXsPmsjGTdvLJ9UymLxPJS91gGyQ.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImNvZGUiOiJBUUNPenN5blVpbVZURVlBTHBiVERIaDl5REMtVC1sSEVCMUJLTWFxUno5bk0tT2M4eTFla256RktNYXdNSWZuWVExUWV1c09XUDNwU0M3dDJxZEdKWnhSZE9pLTRLRVdadTVkdW9OaVRiX2xEWmZ4Y0VuSHJBeFppOTVzbFhOQjlyajJUTWNTREdrNWhNX0VMUzBiXzJxbWtZSTNVX0lWVlllMjlTczh6LTA5azNPWFJVcko2elZOYkk2cGlLTk9nSGswcTVFd3BfVzlpcGJhYVJFd2dZVHo5U0pkSE9hTWFhSjJQY3dqV09SdWFHUVM1bXBDdFRDaDV2eVRXUTd6NEdDSlJFMHNQYXFOQmhSamhCbkNUdGFlMTJOVWIxR0ItcExhUWFZUzg1bW00VDlaMkFQX292Q1Q5QzlBMVVabWFDR3Frcm1YWWh5WE9kQ1lNYndINVB3MiIsImlzc3VlZF9hdCI6MTQzOTI2OTU5NywidXNlcl9pZCI6IjczMDA3MjI1NCJ9; _gat=1; _ga=GA1.2.1057126601.1438592752
    [HTTP_CONNECTION] => keep-alive
    [HTTP_X_FORWARDED_PORT] => 443
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
    [PATH] => /sbin:/usr/sbin:/bin:/usr/bin
    [SERVER_SIGNATURE] => <address>Apache Server at eventseeker.com Port 80</address>

    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => Domain Name
    [SERVER_ADDR] => Load balanacer IP
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => Server IP
    [DOCUMENT_ROOT] => /var/www/html/foldername/
    [SERVER_ADMIN] => xyz@abc.com
    [SCRIPT_FILENAME] => /var/www/html/foldername/index.php
    [REMOTE_PORT] => 10052
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /
    [SCRIPT_NAME] => /index.php
    [PHP_SELF] => /index.php
    [REQUEST_TIME_FLOAT] => 1439270819.984
    [REQUEST_TIME] => 1439270819
)

THE 配列には がありません$_SERVER['https'] = on。したがって、ドメインで有効な HTTPS ヒットを特定するのは困難です。

サーバーが https ヒットを取得し、それを http にリダイレクトしているようです[HTTP_X_FORWARDED_PROTO] => https[HTTP_X_FORWARDED_PORT] => 443[SERVER_PORT] => 80

ドメインは Load Balancer の背後にあり、SSL オフロードを使用します。何が問題になる可能性がありますか?

ユーザーがログインしていない場合、サイトが http で動作する必要があります。ユーザーがログインすると、サイトは https の背後に移動し、ユーザーがログアウトするまで、ユーザーは https でのみサイトを閲覧します。

誰でも助けることができます。ありがとうございました。

4

1 に答える 1

2

セットアップでは、SSL はロード バランサーで終端されています。すべての接続をプレーン HTTP 経由でサイトに転送します。暗号化はありません。HTTP_X_FORWARDED_PROTO = httpsただし、ユーザーが使用するプロトコルをロード バランサーに通知するなどのヘッダーが追加されます。

HTTPS を不可知論的な方法でチェックして、アプリケーションがロード バランサーの背後にあるかどうかを知る必要がないようにする場合は、両方のHTTPS || HTTP_X_FORWARDED_PROTOフィールドをチェックしてみてください。

于 2015-08-11T06:53:56.433 に答える