কিছু ডিরেক্টরিকে এসএসএল ব্যবহারের অনুমতি দেওয়ার জন্য অ্যাপাচি সীমাবদ্ধ করুন


34

আমার কাছে অ্যাপিএস ২.২ সার্ভার রয়েছে একটি এসএসএল শংসাপত্র সহ কয়েকটি পরিষেবা হোস্ট করে যা কেবল এসএসএল ব্যবহারের মাধ্যমে অ্যাক্সেস হওয়া উচিত।

যেমন: https : //myserver.com/topsecret/ কে অনুমতি দেওয়া উচিত যখন HTTP : //myserver.com/topsecret/ কে অস্বীকার করা উচিত বা, আদর্শভাবে, https এ পুনঃনির্দেশিত করা উচিত। http://myserver.com / প্রজাতন্ত্রের এই বিধিনিষেধ থাকা উচিত নয় এবং এটি HTTP বা https ব্যবহার করে কাজ করা উচিত।
শীর্ষস্থানীয় ডিরেক্টরিতে HTTP- কে অনুমোদিত / অস্বীকার করার সিদ্ধান্ত নেওয়া হয়েছে এবং এর নীচে সমস্ত সামগ্রীকে প্রভাবিত করে।

এই পদ্ধতিতে অ্যাক্সেসকে সীমাবদ্ধ করার জন্য অ্যাপাচি কনফিগারেশনে কোনও নির্দেশিকা রাখা যেতে পারে কি?

উত্তর:


38

SSLRequireSSL নির্দেশ আপনি যা খুঁজছেন তা নয়।

<VirtualHost>যদি আপনি ভার্চুয়াল হোস্ট ব্যবহার না করেন তবে আপনার বা শীর্ষ স্তরের ভিতরে :

<Directory /topsecret>
  SSLRequireSSL
</Directory>

বা এতে .htaccess:

SSLRequireSSL

1
সার্ভার ফল্ট আপনাকে স্বাগতম! আমরা সত্যিই পছন্দ করি যে উত্তরের বিষয়বস্তু রয়েছে, সামগ্রীতে নির্দেশক নয়। এই তাত্ত্বিক প্রশ্ন কিন্তু উত্তর দিতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান। ধন্যবাদ!
ক্রিস এস

8
ঠিক আছে, আমি আমার পাঁচ বছরের পুরানো পোস্টটি একটি উদাহরণ দিয়ে আপডেট করেছি :)
টমাস

1
সুষ্ঠু হতে, 5 বছর বয়সী বা না, যুক্তিটি হ'ল আপনি যে লিঙ্কটি নির্দেশ করেছেন সেটি অদৃশ্য হয়ে যেতে পারে, আপনার উত্তরটি বেশিরভাগ বা সম্পূর্ণরূপে অকেজো হয়ে পরে কারও কাছে পরে তথ্যের সন্ধানে আসে। সুতরাং আমি আসলে আপনার ছদ্মবেশী মন্তব্য আপ (সত্য), কিন্তু আমি সম্পূর্ণরূপে সম্মত যে জবাব কিছু প্রসঙ্গ থাকা উচিত যাতে এটি কার্যকর থাকে। বিশেষত যেহেতু এটি সঠিক উত্তর হিসাবে চিহ্নিত হয়েছে।
ক্রেগ

আমি মনে করি না এসও / এসএফ সম্প্রদায়টি কেবলমাত্র-লিঙ্ক এবং "lmgtfy" উত্তর সম্পর্কে ততক্ষণ কঠোর ছিল। তবে আমি রাজি; একটি প্রত্যাবর্তনমূলক সম্পাদনা যে কোনও সময় অর্থবোধ করে।
থমাস

কোন কনফিগারেশন ফাইলের সাথে আমি সেই নির্দেশমূলক বিবৃতি যুক্ত করব?
ড্যান কার্টার

8

গ্লোবাল কনফিগারেশন আপনি ব্যবহার করতে পারেন:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !on
   RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L,QSA]
</IfModule>

একইভাবে আপনি নিরাপদ ডিরেক্টরি গাছের প্রথম ডিরেক্টরিতে একটি .htaccess ফাইল ব্যবহার করতে পারেন:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} !on
   RewriteRule .* https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L,QSA]
</IfModule>

সর্বশেষটি বিশ্বব্যাপী বা ভার্চুয়াল হোস্ট কনফিগারেশনে ডিরেক্টরি নির্দেশিকার ভিতরেও স্থাপন করা যেতে পারে।


এইচটিটিপিকে এইচটিটিপিএসে পুনঃনির্দেশকরণ আপনাকে নির্দিষ্ট ধরণের এমআইটিএম আক্রমণগুলির জন্য উন্মুক্ত করে। শুধু একটি সাবধানতা।
ক্রেগ

1

বিকল্পভাবে, আপনি অ্যাপাচি এর কনফিগারেশন বিকল্পগুলি (যদি সম্ভবত, আপনার কাছে সার্ভারের কনফিগারেশনের অ্যাক্সেস না থাকে) ব্যবহার না করে প্রসেসিংয়ের জন্য আপনি সার্ভার-সাইড ভাষা ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, পিএইচপি সহ:

if (!isset($_SERVER['HTTPS'])) {
  // put your redirect here
  header('Location: http://myserver.com/public');
}

(যদিও শুধু সচেতন হতে হবে - আপনি যদি Microsoft আইআইএস উপর ISAPI ব্যবহার করছেন যদি অনুরোধ করা হয় না HTTPS দ্বারা মাধ্যমে পাঠানো হচ্ছে, তারপর, $ _SERVER এর মান [ 'https'] পরিবর্তনশীল "বন্ধ করুন" হবে)


1

কেউ এসএসএলকিয়ার এসএসএল উল্লেখ করেছেন তবে আমার মনে হয় না এটি নিজে থেকে কাজ করে এবং এর সাথে আমি একটি সফল উদাহরণ পাই নি। প্রস্তাবিত উপায়টি হল https://wiki.apache.org/httpd/RedirectSSL আমি এটি প্রয়োগ করেছি এবং এটি ভালভাবে কাজ করে!


0

ধরে নিই যে আপনি ভার্চুয়ালহোস্ট নির্দেশনা ব্যবহার করছেন,

অ-এসএসএল ভার্চুয়ালহোস্ট অ্যাক্সেস অস্বীকার করে একটি ডিরেক্টরি নির্দেশিকা রাখুন।

তারপরে, এসএসএল ভার্চুয়ালহোস্ট মঞ্জুরি দেওয়ার ক্ষেত্রে একটি ডিরেক্টরি নির্দেশিকা রাখুন।


0

আমি সর্বদা একটি .htaccess ফাইলে এই মোড_উইরাইটটি করেছি, যদিও আপনার এটির জন্য আপনার মূল কনফিগারেশন ফাইলের মধ্যেও সক্ষম হওয়া উচিত।

এটি ঘটানোর কয়েকটি উপায় সহ একটি গাইড এখানে রয়েছে: স্মার্ট HTTP এবং HTTPS পুনর্নির্মাণের পুনঃনির্দেশগুলি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.