GNU/Linux >> Znalost Linux >  >> Linux

Použití SNI k hostování více certifikátů SSL v Apache

Server Name Identification (SNI) je rozšířením protokolů Secure Socket Layer (SSL) a TransportLayer Security (TLS), které vám umožňuje hostovat více certifikátů SSL na jediné jedinečné adrese internetového protokolu (IP). Tento článek popisuje, jak používat SNI k hostování více certifikátů SSL v Apache®.

Předpoklady

Váš server musí splňovat následující požadavky, aby mohl používat SNI:

  • Apache v2.2.12 nebo novější
  • OpenSSL® v 0.9.8j nebo novější
  • musí být nainstalován mod_ssl

Následující operační systémy podporují SNI bez dalších úprav:

  • Red Hat® Enterprise Linux® (RHEL) 6 a novější
  • Fedora® 10 a novější
  • CentOS® 6
  • Debian® 6 a novější
  • Ubuntu® 10.04 a novější

Následující operační systémy vyžadují, aby byly Apache, OpenSSL a mod_ssl zkompilovány se správnými verzemi:

  • Red Hat Enterprise Linux 5
  • Centos 5

Zkontrolujte, zda je nainstalován mod_ssl

Než použijete SNI, zkontrolujte, zda je nainstalován mod_ssl spuštěním následujícího příkazu:

RHEL, CentOS a Fedora

yum list installed | grep mod_ssl

Operační systémy Debian a Ubuntu

dpkg -s apache2.2-common

Pokud mod_ssl není nainstalován, použijte k jeho instalaci následující příkaz:

RHEL, CentOS a Fedora

yum install mod_ssl

Operační systémy Debian a Ubuntu

Pro operační systémy Debian a Ubuntu nainstalujte mod_ssl pomocí následujícího příkazu:

 apt-get install apache2.2-common

Poté modul povolte spuštěním a2enmod ssl; /etc/init.d/apache2 reload .

Nastavit vhosts

Přidejte následující řádky do svého kořenového konfiguračního souboru Apache (apache2.conf nebo 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

V konfiguračním souboru vhost pro každý web musíte přidat konfiguraci virtuálního hostitele. Měl by vypadat podobně jako následující příklady:

První vhost:

<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>

Druhý vhost:

<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>

Konfiguraci můžete otestovat pomocí certifikátu s vlastním podpisem pomocí následujícího příkazu:

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

Do pole Běžný název zadejte název domény a poté restartujte Apache.

Podporované prohlížeče

SNI podporuje většina prohlížečů, ale starší prohlížeče, jako je Internet Explorer® 6 a jakýkoli prohlížeč Windows® XP®, SNI nepodporují.

Prohlížeče pro stolní počítače

  • Internet Explorer 7 a novější

  • Firefox® 2 a novější

  • Opera 8 s povoleným TLS 1.1

  • Google Chrome®:

    • Podporováno v systému Windows XP v prohlížeči Chrome 6 a novějším
    • Ve výchozím nastavení podporováno systémem Vista a novějším
    • Podporováno na OS X 10.5.7 v Chrome verze 5.0.342.0 a novější
  • Chromium® 11.0.696.28 a novější

  • Safari 2.1 a novější (vyžaduje OS X 10.5.6 a novější nebo Windows Vista a novější).

Poznámka: Žádné verze aplikace Internet Explorer v systému Windows XP nepodporují SNI.

Mobilní prohlížeče

  • Mobilní Safari pro iOS 4.0 a novější
  • Android 3.0 (Honeycomb) a novější
  • Windows Phone 7 a novější

Nepodporované prohlížeče

Nepodporované prohlížeče načtou certifikát SSL prvního vhost, který Apache načte. Místo toho můžete zobrazit chybu 403 přidáním následujícího řádku do konfiguračního souboru Apache (apache2.conf nebo httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Použití HTTPS jako proxy backend v Apache 2.4

  2. Apache – vytvoření *.local Ssl certifikátu?

  3. Jak přejmenovat více souborů pomocí funkce Najít?

  1. Jak nastavit subdoménu nebo hostit více domén pomocí nginx na linuxovém serveru

  2. Přehled IIS SNI

  3. Více knihoven glibc na jednom hostiteli

  1. Použití mod_cluster v Apache

  2. Jak nastavit více certifikátů SSL na CentOS VPS s Apache pomocí jedné IP adresy

  3. Obsluhujte více domén pomocí virtuálních hostitelů