GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden von SNI zum Hosten mehrerer SSL-Zertifikate in Apache

Server Name Identification (SNI) ist eine Erweiterung des Secure Socket Layer (SSL)- und TransportLayer Security (TLS)-Protokolls, mit der Sie mehrere SSL-Zertifikate unter einer einzigen, eindeutigen IP-Adresse (Internet Protocol) hosten können. Dieser Artikel beschreibt die Verwendung von SNI zum Hosten mehrerer SSL-Zertifikate in Apache®.

Voraussetzungen

Ihr Server muss die folgenden Anforderungen erfüllen, um SNI zu verwenden:

  • Apache v2.2.12 oder höher
  • OpenSSL® v 0.9.8j oder höher
  • mod_ssl muss installiert sein

Die folgenden Betriebssysteme unterstützen SNI ohne zusätzliche Modifikationen:

  • Red Hat® Enterprise Linux® (RHEL) 6 und höher
  • Fedora® 10 und höher
  • CentOS® 6
  • Debian® 6 und höher
  • Ubuntu® 10.04 und höher

Die folgenden Betriebssysteme erfordern, dass Apache, OpenSSL und mod_ssl mit den richtigen Versionen kompiliert werden:

  • Red Hat Enterprise Linux 5
  • Cento 5

Überprüfen Sie, ob mod_ssl installiert ist

Überprüfen Sie vor der Verwendung von SNI, ob mod_ssl installiert ist, indem Sie den folgenden Befehl ausführen:

RHEL, CentOS und Fedora

yum list installed | grep mod_ssl

Debian- und Ubuntu-Betriebssysteme

dpkg -s apache2.2-common

Wenn mod_ssl nicht installiert ist, installieren Sie es mit dem folgenden Befehl:

RHEL, CentOS und Fedora

yum install mod_ssl

Debian- und Ubuntu-Betriebssysteme

Installieren Sie für die Betriebssysteme Debian und Ubuntu mod_ssl mit dem folgenden Befehl:

 apt-get install apache2.2-common

Aktivieren Sie dann das Modul, indem Sie a2enmod ssl; /etc/init.d/apache2 reload .

vhosts einrichten

Fügen Sie die folgenden Zeilen in Ihre Root-Apache-Konfigurationsdatei (apache2.conf oder 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

In der vhost-Konfigurationsdatei für jede Site müssen Sie Ihre virtuelle Hostkonfiguration hinzufügen. Es sollte ähnlich wie in den folgenden Beispielen aussehen:

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

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

Sie können die Konfiguration mit einem selbstsignierten Zertifikat testen, indem Sie den folgenden Befehl verwenden:

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

Geben Sie den Domänennamen im Feld Common Name an Abschnitt und starten Sie dann Apache neu.

Unterstützte Browser

SNI wird von den meisten Browsern unterstützt, ältere Browser wie Internet Explorer® 6 und alle Windows® XP®-Browser unterstützen SNI jedoch nicht.

Desktop-Browser

  • Internet Explorer 7 und höher

  • Firefox® 2 und höher

  • Opera 8 mit aktiviertem TLS 1.1

  • Google Chrome®:

    • Unterstützt von Windows XP auf Chrome 6 und höher
    • Unter Vista und höher standardmäßig unterstützt
    • Unterstützt auf OS X 10.5.7 in Chrome-Version 5.0.342.0 und höher
  • Chromium® 11.0.696.28 und höher

  • Safari 2.1 und höher (erfordert OS X 10.5.6 und höher oder Windows Vista und höher).

Hinweis: Keine Version von Internet Explorer unter Windows XP unterstützt SNI.

Mobile Browser

  • Mobile Safari für iOS 4.0 und höher
  • Android 3.0 (Honeycomb) und höher
  • Windows Phone 7 und höher

Nicht unterstützte Browser

Nicht unterstützte Browser laden das SSL-Zertifikat des ersten vhost, den Apache lädt. Sie können stattdessen einen 403-Fehler anzeigen, indem Sie der Apache-Konfigurationsdatei (apache2.conf) die folgende Zeile hinzufügen , oder httpd.conf ):

SSLStrictSNIVHostCheck on

Linux
  1. Verwenden von mod_cluster in Apache

  2. Verwendung von HTTPS als Proxy-Backend in Apache 2.4

  3. Apache – Erstellen eines *.local SSL-Zertifikats?

  4. So richten Sie mehrere SSL-Zertifikate auf einem CentOS VPS mit Apache unter Verwendung einer IP-Adresse ein

  5. IIS-SNI-Übersicht

So hosten Sie eine Website mit Apache mit SSL in Rocky Linux

So installieren Sie Apache, um eine Website mit SSL in AlmaLinux zu hosten

SSL-Zertifikate auf einem Windows-Server installieren

So installieren Sie Apache in CentOS 8

Hosten Sie mehrere Websites auf einem einzigen Server mit Apache unter Ubuntu 18.04

Meistern Sie selbstsignierte Zertifikate unter Windows und Linux