지금 클라우드플레어 적용한지 1시간은 지났습니다. 다 이상없는데 선택적 ssl 사용시 ssl이 사용되는 페이지에서 문제가 발생합니다.

 

https://gist.github.com/kijin/25be59ac4b0d7c5ef722

 

class FixCloudFlare
{
    /**
     * CloudFlare에서 사용하는 IP 대역 목록
     * 참고: https://www.cloudflare.com/ips
     */
    public static $cf_ip_ranges = array(
        '103.21.244.0/22',
        '103.22.200.0/22',
        '103.31.4.0/22',
        '104.16.0.0/12',
        '108.162.192.0/18',
        '131.0.72.0/22',  // 2016년 추가
        '141.101.64.0/18',
        '162.158.0.0/15',
        '172.64.0.0/13',
        '173.245.48.0/20',
        '188.114.96.0/20',
        '190.93.240.0/20',
        '197.234.240.0/22',
        '198.41.128.0/17',
        '199.27.128.0/21',
    );
    
    /**
     * CloudFlare를 통해 방문한 경우, 방문자 IP와 HTTPS 사용 여부를 파악한다
     */
    public static function fixVisitorInfo()
    {
        foreach (self::$cf_ip_ranges as $range)
        {
            if (self::inRange($_SERVER['REMOTE_ADDR'], $range))
            {
                if (isset($_SERVER['HTTP_CF_CONNECTING_IP']))
                {
                    $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
                }
                if (strpos($_SERVER['HTTP_CF_VISITOR'], 'https') !== false)
                {
                    $_SERVER['HTTPS'] = 'on';
                }
                return true;
            }
        }
        return false;
    }
    
    /**
     * IPv4 주소가 IP 대역에 포함되어 있는지 확인하는 함수
     */
    public static function inRange($ip, $range)
    {
        list($range, $netmask) = explode('/', $range);
        $ip = ip2long($ip) & (0xffffffff << (32 - $netmask));
        $range = ip2long($range) & (0xffffffff << (32 - $netmask));
        return $ip == $range;
    }
}
/**
 * 위에서 선언한 클래스를 호출해 준다
 * 이거 빼먹으면 안되는거 알죠?
 */
FixCloudFlare::fixVisitorInfo();

 

 

 

위 내용을 config.user.inc.php 파일의 내용에 추가는 해 줬습니다.

좀더 기다려 봐야 하는건가요 ???

 

 

 

 

 

사이트에 보안 연결할 수 없음

mygateway.link에서 잘못된 응답을 전송했습니다.

ERR_SSL_PROTOCOL_ERROR
  • profile
    ssl 인증서 발급은 최대 24시간이 걸릴수 있다는 문구가 있긴 하네요.
  • profile

    올려주신 스크립트는 글쓴이의 IP 주소가 잘못 표시되거나 로그인이 풀리는 문제를 해결해 주는 것이지, 아예 접속이 안 되는 상황에서는 도움을 주지 못합니다. 클라우드플레어 적용한 지 1시간밖에 안 되었다면 아직 그쪽에서 SSL 세팅이 완료되지 않았을 가능성도 있고, 여전히 클플 IP가 아닌 곳으로 접속되고 있을 가능성도 있습니다.

  • profile profile
    네. 처음에는 AUTHORIZING CERTIFICATE 이문구가 없었는데 지금은 떠 있습니다. 아마도 이 문구가 인증서 발급중이라는 표시 같아요.

    이 문구가 ACTIVE CERTIFICATE 로 바뀌고 난 후 다시 시도해 보면 될 것 같아요.