একই ভার্চুয়ালহোস্টে http (পোর্ট 80) এবং https (পোর্ট 443) পরিবেশন করুন


29

HTTP এবং https উভয় পরিমান (স্ট্যান্ডার্ড পোর্ট ব্যবহার করে) পরিবেশন করার জন্য আমাকে অ্যাপাচে আমার ভার্চুয়ালহস্ট সেটআপ করতে হবে

যদি আমি এসএসএল ইঞ্জিন সক্ষম করি (নীচে হিসাবে) - আমি পোর্ট 80 এ থাকা অবস্থায় ত্রুটি পাই।

কারণটি হ'ল, সাইটের অংশগুলি এসএসএল হওয়া দরকার তবে অন্যান্য অংশগুলি তা নয়। আমি কীভাবে সাইটে সাইটে এইচটিএসপি + https উভয়ই পরিবেশন করতে পারি?

এখানে আমার ভার্চুয়াল হোস্ট ফাইলটি ....

NameVirtualHost *

<VirtualHost *>
        ServerAdmin webmaster@localhost
        ServerName mysite.co.uk
        DocumentRoot /var/www/mysite/public
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/mysite/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

     #SSL STUFF...
      SSLEngine on
      SSLCertificateFile /etc/apache2/crts/mysite.crt
      SSLCertificateKeyFile /etc/apache2/crts/mysite.key
      SSLCertificateChainFile /etc/apache2/crts/DigiCertCA.crt


</VirtualHost>

উত্তর:


44

আপনি এটি কোনও ভার্চুয়াল হোস্টে করতে পারবেন না, কারণ আপাচি যে কোনটি এসএসএল কথা বলবে এবং কোনটি নয় তা জানতে হবে (সিডনোট: এনজিনেক্সের এই সমস্যা নেই), আপনি এসএসএলের সাথে সম্পর্কিত কোন নির্দেশনা শোনেন তা বলতে পারেন; আমি এটি ভালবাসে অনেক কারণের একটি)।

আমি অ্যাপাচে এটি যেভাবে পরিচালনা করি তা হ'ল আমার নন-এসএসএল-সম্পর্কিত সমস্ত কনফিগারেশনকে একটি পৃথক ফাইলে রেখে দেওয়া এবং তারপরে দুটি vhosts একে অপরের পাশে কনফিগার করা আছে, প্রতিটি vhost স্তরের অভ্যন্তরে সাইট-নির্দিষ্ট কনফিগারেশন ফাইল সহ :

<VirtualHost 192.0.2.12:80>
    Include /etc/apache2/sites/example.com
</VirtualHost>

<VirtualHost 192.0.2.12:443>
    SSLEngine On
    # etc
    Include /etc/apache2/sites/example.com
</VirtualHost>

7

এটি অ্যাপাচি ভিহোস্টের মতো সমস্যার মতো মনে হলেও কনফিগারেশনের পুনরাবৃত্তি না করেই এটি কাজ করে।

SSLCertificateFile /srv/.ssl/self/server.crt
SSLCertificateKeyFile /srv/.ssl/self/server.pem

# REQUIRED
<VirtualHost *:80>
    DocumentRoot /srv/www/badhost
</VirtualHost>

<VirtualHost *:80 *:443>
    SSLEngine On
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /srv/www/example.www
</VirtualHost>

এটা সত্যিই অদ্ভুত, কিন্তু বিদ্যমান!
ব্যবহারকারী 77376

1
এটি যেমন কাজ করেছে তেমনি আপনি যেমন কুলডজ থেকেও আশা করতে পারেন - প্রায়, তবে বেশ নয়! আমি দেখেছি যে অ্যাপাচি ২৪.৪.১০ বন্দরটি অনুরোধে এসেছিল (80 বা 443 নির্ভর করে) ব্যবহারের পরিবর্তে SERVER_PORT পরিবেশ পরিবর্তনশীলকে 443 এ সেট করে। <IMAGINARY_PARAGRAPH_BREAK> করুণা, যেহেতু আমি ভার্চুয়াল হোস্টের জন্য একটি ফাইল সত্যিই রাখতে চেয়েছিলাম বলে আমি এটি ব্যবহার করতে সক্ষম হব বলে আশা করি। <IMAGINARY_PARAGRAPH_BREAK> এছাড়াও, আপনাকে শীর্ষে <ভার্চুয়াল হোস্ট> এর ভিতরে একটি সার্ভারনাম নির্দেশিকা প্রয়োজন হবে অন্যথায় এটি ভুলক্রমে অনুরোধগুলিকে গুঁড়িয়ে দেবে। এটি সার্ভারনাম Badhost.bad বা কিছুতে সেট করুন।
ড্যানিয়েল বিয়ার্ডসমোর

1
@ ড্যানিয়েলবার্ডসমোর: আরএইচ সফ্টওয়্যার সংগ্রহগুলি থেকে আমি এই মাত্র ২.৪.১৮ নিয়ে পরীক্ষা করেছি এবং এটি ডিফল্টর কারণে বলে মনে হচ্ছে UseCanonicalPhysicalPort Off। যদি আপনি এটি চালু করে থাকেন তবে মনে হয় আসল বন্দরটি ব্যবহার হয়ে যাবে। (আনন্দেরভাবে যথেষ্ট, আমাকে SSLEngine Onআমার দ্বিগুণ ব্যবহৃত ভোস্টে ছেড়ে যেতে হয়েছিল এবং ডিফল্ট হিসাবে ৮০ বন্দরটি পেতে হয়েছিল))
উলরিচ শোয়ার্জ

1
@ ড্যানিয়েলবার্ডসমোর: এফডাব্লুআইডাব্লু, %{HTTPS}এছাড়াও সঠিকভাবে সেট করা হবে, তবে %{REQUEST_SCHEME}(সর্বদা নয় http)। যদিও আমি কোনও UseCanonicalRequestSchemeনির্দেশিকার জন্য একটি বৈশিষ্ট্য অনুরোধটি বোকা বোধ করছি ।
উলিরিচ শোয়ার্জ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.