GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan SNI untuk meng-host beberapa sertifikat SSL di Apache

Server Name Identification (SNI) adalah perpanjangan dari protokol Secure Socket Layer (SSL) dan TransportLayer Security (TLS) yang memungkinkan Anda untuk meng-host beberapa sertifikat SSL pada satu alamat Internet Protocol (IP) unik. Artikel ini menjelaskan cara menggunakan SNI untuk menghosting beberapa sertifikat SSL di Apache®.

Prasyarat

Server Anda harus memenuhi persyaratan berikut untuk menggunakan SNI:

  • Apache v2.2.12 atau lebih baru
  • OpenSSL® v 0.9.8j atau lebih baru
  • mod_ssl harus diinstal

Sistem operasi berikut mendukung SNI tanpa modifikasi tambahan:

  • Red Hat® Enterprise Linux® (RHEL) 6 dan yang lebih baru
  • Fedora® 10 dan yang lebih baru
  • CentOS® 6
  • Debian® 6 dan yang lebih baru
  • Ubuntu® 10.04 dan yang lebih baru

Sistem operasi berikut memerlukan Apache, OpenSSL, dan mod_ssl untuk dikompilasi dengan versi yang tepat:

  • Red Hat Enterprise Linux 5
  • Centos 5

Periksa apakah mod_ssl sudah terpasang

Sebelum menggunakan SNI, pastikan mod_ssl sudah terinstal dengan menjalankan perintah berikut:

RHEL, CentOS, dan Fedora

yum list installed | grep mod_ssl

Sistem operasi Debian dan Ubuntu

dpkg -s apache2.2-common

Jika mod_ssl tidak diinstal, gunakan perintah berikut untuk menginstalnya:

RHEL, CentOS, dan Fedora

yum install mod_ssl

Sistem operasi Debian dan Ubuntu

Untuk sistem operasi Debian dan Ubuntu, instal mod_ssl dengan menggunakan perintah berikut:

 apt-get install apache2.2-common

Kemudian aktifkan modul dengan menjalankan a2enmod ssl; /etc/init.d/apache2 reload .

Siapkan vhost

Tambahkan baris berikut di file konfigurasi root Apache Anda (apache2.conf atau httpd.conf ):

# Ensure that Apache listens on port 443
Listen 443

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
SSLStrictSNIVHostCheck off

Dalam file konfigurasi vhost untuk setiap situs, Anda harus menambahkan konfigurasi virtual host Anda. Seharusnya terlihat seperti contoh berikut:

Vhost pertama:

<VirtualHost *:443>

 ServerName www.yoursite.com

 DocumentRoot /var/www/site

 SSLEngine on

 SSLCertificateFile /path/to/www_yoursite_com.crt

 SSLCertificateKeyFile /path/to/www_yoursite_com.key

 SSLCertificateChainFile /path/to/DigiCertCA.crt

</Virtual Host>

Vhost kedua:

<VirtualHost *:443>

 ServerName www.yoursite2.com

 DocumentRoot /var/www/site2

 SSLEngine on

 SSLCertificateFile /path/to/www_yoursite2_com.crt

 SSLCertificateKeyFile /path/to/www_yoursite2_com.key

 SSLCertificateChainFile /path/to/DigiCertCA.crt

</Virtual Host>

Anda dapat menguji konfigurasi dengan sertifikat yang ditandatangani sendiri dengan menggunakan perintah berikut:

openssl req -new -nodes -keyout mykey.key -out mycert.cer -days 3650 -x509

Tentukan nama domain di Nama Umum bagian, lalu restart Apache.

Browser yang didukung

SNI didukung oleh sebagian besar browser, namun browser lama seperti Internet Explorer® 6 dan browser Windows® XP® apa pun tidak mendukung SNI.

Peramban desktop

  • Internet Explorer 7 dan yang lebih baru

  • Firefox® 2 dan yang lebih baru

  • Opera 8 dengan TLS 1.1 diaktifkan

  • Google Chrome®:

    • Didukung pada Windows XP pada Chrome 6 dan yang lebih baru
    • Didukung di Vista dan yang lebih baru secara default
    • Didukung pada OS X 10.5.7 di Chrome Versi 5.0.342.0 dan yang lebih baru
  • Chromium® 11.0.696.28 dan yang lebih baru

  • Safari 2.1 dan yang lebih baru (memerlukan OS X 10.5.6 dan yang lebih baru atau Windows Vista dan yang lebih baru).

Catatan: Tidak ada versi Internet Explorer di Windows XP yang mendukung SNI.

Browser seluler

  • Safari Seluler untuk iOS 4.0 dan yang lebih baru
  • Android 3.0 (Honeycomb) dan yang lebih baru
  • Windows Phone 7 dan yang lebih baru

Browser tidak didukung

Browser yang tidak didukung memuat sertifikat SSL dari vhost pertama yang dimuat Apache. Anda dapat menampilkan kesalahan 403 sebagai gantinya dengan menambahkan baris berikut ke file konfigurasi Apache (apache2.conf , atau httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Menggunakan HTTPS sebagai backend proxy di Apache 2.4

  2. Bagaimana Cara Mengganti Nama Banyak File Menggunakan Find?

  3. Cara mengatur subdomain atau meng-host beberapa domain menggunakan nginx di server linux

  1. Menggunakan mod_cluster di Apache

  2. Ikhtisar SNI IIS

  3. Beberapa pustaka glibc pada satu host

  1. Apache – Membuat Sertifikat SSL *.local?

  2. Cara Mengatur Beberapa Sertifikat SSL Pada VPS CentOS Dengan Apache Menggunakan Satu Alamat IP

  3. Melayani beberapa domain dengan menggunakan virtual host