এসএসএলের সাথে অ্যাপাচি 2 কি ভার্চুয়ালহস্ট ব্লকগুলি অনুলিপি করতে হবে?


18

উবুন্টুতে অ্যাপাচি 2 এ আমি আমার সাইটটি 80 এ শুনছি, এবং এখন আমি এসএসএল যুক্ত করতে চাই। 443 পোর্টের জন্য এসএসলেএনগাইন সক্ষম করার কোনও উপায় আছে যাতে আমার পুরো ভার্চুয়ালহস্ট ব্লকটি অনুলিপি করতে হবে না?

আমি যখন এটি করি:

Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
  SSLEngine On
  ... a bunch more lines...
</VirtualHost>

এটি পোর্ট ৮০-এর জন্য এসএসএলইগাইন চালু করছে। কেবলমাত্র একটি ভার্চুয়ালহস্ট ব্লক ব্যবহার করার উপায় আছে এবং 443 বন্দরের জন্য কেবল এসএসএলইগাইন চালু করা যায়? তাহলে আমি কি এরকম কিছু করতে পারি?

Listen 80
Listen 443
NameVirtualHost *
<VirtualHost *>
   <IfPort 443>
      SSLEngine On
   </IfPort>
   ... a bunch of lines I don't want to copy into another VirutalHost block...
</VirtualHost>

উত্তর:


14

আপনি এইচটিটিপি এবং এইচটিটিপিএস উভয় করেই একটি ভোস্ট তৈরি করতে পারবেন না, কারণ তারা পৃথক প্রোটোকল পরিবেশনকারী পৃথক পৃথক vhosts। পরিবর্তে, আপনার সমস্ত সাধারণ কনফিগারেশন পৃথক ফাইলে রাখা উচিত এবং তারপরে সেই ফাইলটি ডোমেনের জন্য এসএসএল এবং নন-এসএসএল উভয় ক্ষেত্রেই অন্তর্ভুক্ত করা উচিত।

সর্বনিম্ন উদাহরণ:

# /etc/apache2/sites-available/example.com
<VirtualHost *:80>
  Include /etc/apache2/domains/example.com
</VirtualHost>

<VirtualHost 192.0.2.1:443>
  SSLEngine On
  SSLCertificateFile /etc/ssl/example.com_crt
  SSLCertificateKeyFile /etc/ssh/example.com_key

  Include /etc/apache2/domains/example.com
</VirtualHost>

# /etc/apache2/domains/example.com
ServerName example.com
ServerAlias www.example.com

ServerAdmin webmaster@example.com
DocumentRoot /home/example/public_html
ErrorLog /home/example/apache/error.log

ফাইলটি দেখতে কেমন হওয়া উচিত তার একটি সংক্ষিপ্ত উদাহরণ আমাকে দিতে পারেন? এটির জন্য কি ভার্চুয়ালহোস্ট র‌্যাপার দরকার, বা কোনও রেপর ছাড়া আমার কেবল সমস্ত লাইন এটিতে সরিয়ে নেওয়া উচিত?
দার

1
আমি আমার উত্তরে একটি উদাহরণ যুক্ত করেছি।
দোলা

1

আমি স্ট্যাকওভারফ্লো সম্পর্কিত একটি পৃথক প্রশ্নের উপরে যেমন উল্লেখ করেছি ( /programming/679383/do-i-have-to-d નકલ )-virtualhost-directives-for-port-80-and-443/52375167# 52375167 ):

ব্যবহার না করে অন্য একটি বিকল্প ব্যবহার করা Includeহচ্ছে Macro(যাতে আপনি এগুলি সমস্ত একটি ফাইলে রাখতে পারেন)।

প্রথমে ম্যাক্রো মডিউল সক্ষম করুন:

a2enmod macro

তারপরে আপনার ভাগ করা জিনিসগুলি একটি ম্যাক্রোতে রাখুন এবং useএটি আপনার ভার্চুয়ালহোস্টগুলি থেকে:

<Macro SharedStuff>
   ServerName example.com
   ServerAdmin example@example.com
   <DocumentRoot /var/www/example>
      ...
   </DocumentRoot>
</Macro>

<VirtualHost *:80>
  Use SharedStuff
</VirtualHost>

<VirtualHost *:443>
  Use SharedStuff

  SSLEngine On
  SSLProtocol All -SSLv2 -SSLv3
  ...
</VirtualHost>

ম্যাক্রো প্যারামিটারও নিতে পারে এবং অন্তর্ভুক্ত অন্যান্য ফাইলে সংজ্ঞায়িত করা যায়; যাতে আপনি এগুলি কিছুটা ফাংশনের মতো ব্যবহার করতে পারেন এবং আপনার অ্যাপাচি কনফিগারেশন ফাইলগুলিতে প্রচুর নকল সংরক্ষণ করতে পারেন।

বিস্তারিত জানতে এখানে দেখুন:

https://httpd.apache.org/docs/2.4/mod/mod_macro.html


0

আপনি যে কোনও <Directory>ব্লকের বাইরে কোনও <VirtualHost>ব্লকে ডিরেক্টরি সেটিংস রাখতে পারেন । এটি তাদের সমস্ত ভার্চুয়াল হোস্ট জুড়ে প্রয়োগ করবে তবে কেবলমাত্র নির্দিষ্ট পাথের মধ্যে।

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