On _SERVER ['HTTPS'] = 'অন' সেট করা ডাব্লুপি-প্রশাসকের অ্যাক্সেসকে বাধা দেয়


16

প্রথমে আমার সার্ভারটি একটি ভার ভারসাম্যের পিছনে বসে আছে। আমার এসএসএল শংসাপত্রটি লোড ব্যালেন্সারে বসে এবং এইচটিটিপিএস পরিচালনা করে। 443 পোর্টে আসা ডেটা 80 পোর্টে HTTP ব্যবহার করে ওয়ার্ডপ্রেস সার্ভারে ফরোয়ার্ড করা হয়েছে।

তবে, ওয়ার্ডপ্রেস এবং পিএইচপি আমার সার্ভার কনফিগারেশন জানেন না। এর ফলে ব্রাউজারটি আমার বৈধ SSL শংসাপত্রের বৈধতা সম্পর্কে সন্দেহজনক হয়ে উঠবে।

এটি ঠিক করতে আমি নিম্নলিখিত কোডগুলি ফাংশন.এফপিতে যুক্ত করেছি। আমি এই কোডটি এখানে পেয়েছি এবং কোডেক্স সম্মত হয়

/**
 * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO
 */
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
    $_SERVER['HTTPS']='on';
}

এটি ফ্রন্টএন্ডের জন্য দুর্দান্ত কাজ করে তবে এখন / wp-admin / আমার প্রশাসন অ্যাকাউন্টেও অ্যাক্সেসযোগ্য। লগ ইন করার পরে আমি একটি বার্তা পেয়েছি, "দুঃখিত, আপনাকে এই পৃষ্ঠাটি অ্যাক্সেস করার অনুমতি নেই।" অন্য কোনও সহায়তা সরবরাহ করা হয় না।

তাই আমি ডাব্লুপি-অ্যাডমিন ফোল্ডারটি অনুসন্ধান করে আবিষ্কার করেছি যে "দুঃখিত, আপনাকে এই পৃষ্ঠাটি অ্যাক্সেস করার অনুমতি নেই।" 17 বিভিন্ন সময় প্রদর্শিত হবে।

এই ত্রুটি বার্তার বেশিরভাগ ব্যবহারকারীর অনুমতি চেকের সাথে যুক্ত।

আমি কীভাবে এইচটিটিপিএসকে 'চালু' রাখতে এবং প্রশাসকের অ্যাক্সেস ধরে রাখতে পারি?

সারসংক্ষেপ:

  • HTTP_X_FORWARDED_PROTO যুক্তি যুক্ত করার পূর্বে ফাংশন.এফপি-তে যুক্ত করে আমি ডাব্লুপি-অ্যাডমিন /
  • HTTP_X_FORWARDED_PROTO যুক্তি ফাংশন.এফপি যোগ করার পরে আমি ডাব্লুপি-অ্যাডমিন /
  • HTTP_X_FORWARDED_PROTO যুক্তিটি ফাংশন.এফপি-তে সরানোর পরে আমি ডাব্লুপি-অ্যাডমিন /

হালনাগাদ:

আমি আবিষ্কার করেছি যে ত্রুটি বার্তাটি ডাব্লুপি-অ্যাডমিন / মেনু.এফপি এবং নীচে কোডের এই অংশ থেকে আসছে। আমি menu.phpত্রুটিটির শেষে যুক্ত করেছিলাম এটি এই ফাইলটি।

if ( !user_can_access_admin_page() ) {

    /**
     * Fires when access to an admin page is denied.
     *
     * @since 2.5.0
     */
    do_action( 'admin_page_access_denied' );

    wp_die( __( 'Sorry, you are not allowed to access this page. menu.php'), 403 );
}

আমি কীভাবে এটি ঠিক করব তা এখনও বুঝতে পারি না।


1
আপনার বাকি কনফিগারেশন সম্পর্কে আপনি বেশি কিছু বলতে চান না। আপনি কি সেট করেছেনdefine('FORCE_SSL_ADMIN', true);
user42826

আমি 'FORCE_SSL_ADMIN' সংজ্ঞায়িত করিনি। আমি এটা চেষ্টা করব.
এভারেস্ট

আপনাকে যাচাই করতে হবে যে https কুকিগুলি লোড ব্যালেন্সার থেকেও HTTP- র মাধ্যমে প্রেরিত হয়েছিল। মনে হচ্ছে এগুলি প্রেরণ করা হয়নি। স্পষ্টতই অন্যান্য
উপায়ও

উত্তর:


19

ব্যবহারকারীর জন্য বিশেষ ধন্যবাদ।

কোডেক্স অনুসারে:

যদি ওয়ার্ডপ্রেসটি কোনও বিপরীত প্রক্সিটির পিছনে হোস্ট করা থাকে যা এসএসএল সরবরাহ করে তবে এসএসএল ছাড়াই এটি হোস্ট করা হয়, তবে এই বিকল্পগুলি প্রাথমিকভাবে কোনও অনুরোধ একটি অসীম পুনর্নির্দেশ লুপে প্রেরণ করবে। এটি এড়ানোর জন্য, আপনি HTTP_X_FORWARDED_PROTO শিরোলেখটিকে স্বীকৃতি দেওয়ার জন্য ওয়ার্ডপ্রেস কনফিগার করতে পারেন (ধরে নিচ্ছেন যে শিরোনামটি সেট করতে আপনি বিপরীত প্রক্সিটি সঠিকভাবে কনফিগার করেছেন)।

নিম্নলিখিত ক্রিয়াগুলি সমস্যার সমাধান করবে।

এটি wp-config.php এ যুক্ত করুন। ( কোডেক্স রেফারেন্স )

/* SSL Settings */
define('FORCE_SSL_ADMIN', true);

/* Turn HTTPS 'on' if HTTP_X_FORWARDED_PROTO matches 'https' */
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

এটি অপ্রয়োজনীয় হওয়ায় এটি ফাংশন.এফপি থেকে সরান।

/**
 * Make PHP HTTPS aware via HTTP_X_FORWARDED_PROTO
 */
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
    $_SERVER['HTTPS']='on';
}

1
কারণটি হ'ল লোড ব্যালেন্সারের পিছনে নিরাপদ সেশন কুকিজ হারিয়ে যায় কারণ এলবি এসএসএল করছে তবে ব্যাকএন্ডটি সরল http http অন্যদের এন্টারপ্রাইজ স্তরের আর্কিটেকচারে কাজ করে দেখে খুব ভাল
লাগছে

@ user42826 এই সেটআপটি সম্পর্কে কী সুন্দর তা হল আমি যদি প্রশাসক অ্যাক্সেস নিষিদ্ধ করতে চাই তবে আমি কেবলমাত্র ফোরসি.এসএসএল_এডমিন মন্তব্য করতে পারি, বা এমন কোনও পার্শ্ব প্রতিক্রিয়া রয়েছে যা আমাকে এই চিন্তাভাবনার পুনর্বিবেচনার কারণ হতে পারে?
এভারেস্ট

1
আপনার সেটআপে, মনে হচ্ছে এটি FORCE_SSL_ADMIN সেট না করা অ্যাডমিন অ্যাক্সেসকে বাধা দেয়, তবে আপনার প্রয়োজনীয়তার উপর নির্ভর করে এটি করার আরও ভাল উপায় আছে। উদাহরণস্বরূপ: .htaccess বা অ্যাপাচি কনফিগারেশনে wp-admin বা wp-login.php অ্যাক্সেস প্রতিরোধ করুন, প্লাগইনের মাধ্যমে ডাব্লুপি নেটিভ প্রমাণীকরণ মুছে ফেলুন, পুনরায় আর্কিটেকচার ডাব্লুপি যাতে ডাব্লুপি-অ্যাডমিন ইউআরএল পাবলিক ইউআরএল ইত্যাদির চেয়ে আলাদা হয় ইত্যাদি
user42826

6
require_once(ABSPATH . 'wp-settings.php');লাইনের আগে এই কোডটি যুক্ত করার বিষয়টি নিশ্চিত করুন । এই উত্তরে জেটিএলকে বিশেষ ধন্যবাদ।
অ্যারোনিনাস

অ্যারোনিনাস ধন্যবাদ, আমি ক্লাউডফ্লেয়ার নমনীয় এসএসএল ব্যবহার করি এবং আপনার মন্তব্য না করে আমি আবার অনুসন্ধানে সময় ব্যয় করতাম। আমি এই সম্পর্কিত প্রশ্নটি আগে খুঁজে পেয়েছি: ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জার
প্রশ্নস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.