Multiple SSL Web Sites On One IP Address

แก้ให้ apache 2 สามารถให้บริการ ssl-site ได้มากกว่า 1 site บน ubuntu 12.04 ; Apache 2.2.22

* Server ต้องสามารถให้บริการ https ได้อยู่แล้ว

  1. เพิ่มบรรทัด NameVirtualHost *:443 ลงไปในไฟล์ /etc/apache2/ports.conf
    ตัวอย่าง
    ports.conf

    # /etc/apache2/sites-enabled/000-default
    # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
    # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
    # README.Debian.gz

    NameVirtualHost *:80
    NameVirtualHost *:443
    Listen 80

    <IfModule mod_ssl.c>
    # If you add NameVirtualHost *:443 here, you will also have to change
    # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
    # to <VirtualHost *:443>
    # Server Name Indication for SSL named virtual hosts is currently not
    # supported by MSIE on Windows XP.
    Listen 443
    </IfModule>

    <IfModule mod_gnutls.c>
    Listen 443
    </IfModule>

  2. สร้างแฟ้ม sites ที่ต้องการในโฟลเดอร์ /etc/apache2/sites-available เช่น site ชื่อ licensing.psu.ac.th  และ licensing.in.psu.ac.th ก็สร้าง 2 ไฟล์ คือ licensing-ssl และ licensing-in-sslตัวอย่าง
    licensing-ssl
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
        ServerName licensing.psu.ac.th
        DocumentRoot “/var/www/licensing”
        SSLEngine on
            SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt
            SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key
            SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle
    </VirtualHost>
    </IfModule>

    licensing-in-ssl
    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName licensing.in.psu.ac.th
    DocumentRoot “/var/www/lwp”
    SSLEngine on
    SSLCertificateFile /etc/ssl/private/STAR_psu_ac_th.crt

    SSLCertificateKeyFile /etc/ssl/private/STAR_psu_ac_th.key

    SSLCertificateChainFile /etc/ssl/private/STAR_psu_ac_th.ca-bundle

    </VirtualHost>
    </IfModule>

  3. enable site ด้วยคำสั่ง sudo a2ensite licensing-ssl licensing-in-ssl
  4. restart apache2 ด้วยคำสั่ง sudo service apache2 restart
  5. ทดสอบเข้า https://licensing.psu.ac.th และ https://licensing.in.psu.ac.th
  6. การใช้ หลาย ssl site บนเครื่องเดียวนั้น ต้องใช้ความสามารถของ browser ด้วย โดย  browser ที่รองรับการทำ multi ssl นั้นได้แก่ Opera 8.0 and later (the TLS 1.1 protocol must be enabled), Internet Explorer 7 or later (under Windows Vista and later only, not under Windows XP), Firefox 2.0 or later, Curl 7.18.1 or later (when compiled against an SSL/TLS toolkit with
    SNI support), Chrome 6.0 or later (on all platforms – releases up to 5.0 only on specific OS versions), Safari 3.0 or later (under OS X 10.5.6 or later and under Windows Vista and later)
  7. แฟ้ม STAR_psu_ac_th.crt, STAR_psu_ac_th.key และ STAR_psu_ac_th.ca-bundle
    เป็น certificate ที่ซื้อมาใช้กับโดเมน *.psu.ac.th ทำให้เมื่อเข้า https://licensing.in.psu.ac.th จะมีการเตือนเรื่อง certificate
  8. apache 2 ที่สามารถทำ multi ssl นั้นต้องเป็น apache 2 รุ่น 2.2.12 ขึ้นไป …
  9. ขอให้สนุกครับ

ที่มา

  • http://www.howtoforge.com/hosting-multiple-ssl-web-sites-on-one-ip-address-with-apache-2.2-and-gnutls-debian-lenny
  • https://sni.velox.ch/