Aktuelle Version: 1.0.1-2
Auf einen Blick |
|
Katalog |
System |
Kategorie |
Gateways |
Benutzer-Volumes |
ja |
Min. Speicher |
192 M |
Betriebssystem |
Linux |
Einschränkungen |
no |
Die INSSLR2-Appliance ist ein Layer-7-Gateway für sichere HTTP-Anfragen. Konvertiert die Anfragen in unverschlüsselte HTTP-Anfragen. Sie können diese Funktion verwenden, um sicheres HTTP auf der Client-Seite zu unterstützen.
Allerdings wird SSL von der Backend-Infrastruktur nicht unterstützt. Hierzu zählen:
Sofern konfiguriert, unterstützt INSSLR2 auch die Client-Zertifikatauthentifizierung. Bei der gegenseitigen SSL-Authentifizierung tauschen der Client und der Server ihre Zertifikate und zugehörigen öffentlichen Schlüssel aus. Der Client und/oder der Server können die Zertifizierungsstelle (CA), die das Zertifikat ausgegeben hat, kontaktieren und vor dem Fortfahren bestätigen, dass das Zertifikat authentisch ist.
In der Standardkonfiguration agiert INSSLR2 als Layer-7-Gateway für sichere HTTP-Anforderungen. Es stellt außerdem einen Einstiegspunkt mit Firewall für Netzwerkverkehr in eine Anwendung bereit. Dies kann mit einer über das Internet zugänglichen statischen IP-Adresse konfiguriert werden.
Sofern konfiguriert, können zwei INSSLR2-Appliances im Failover-Modus verwendet werden, um einen redundanten Dienst bereitzustellen. In diesem Fall wird die IP-Adresse von INSSLR2 auf nur einem der Knoten ausgeführt und im Falle eines Fehlers automatisch auf die andere INSSLR2-Appliance übertragen. Es ist immer nur eine der INSSLR2-Appliances gleichzeitig aktiv. Im Failover-Modus kann INSSLR2 so konfiguriert werden, dass eine Ausführung in mehreren Modi möglich ist:
Wenn der Primärknoten fehlschlägt oder angehalten wird, wird die Sicherungs-Appliance aktiv. Wenn die primäre Appliance erneut verfügbar ist, übernimmt sie wieder die IP-Adresse und wird aktiv. Die primäre Appliance ist die Appliance mit der kürzesten IP-Adresse (Zeichenfolgenvergleich) der Fover-Schnittstelle.
Wenn die primäre Appliance erneut verfügbar ist, übernimmt sie nicht automatisch die IP-Adresse.
Wenn INSSLR2 im redundanten Modus ausgeführt wird, wird eine Schnittstelle auf dem zugehörigen Terminal "ctl" bereitgestellt, um:
INSSLR2 überwacht kontinuierlich den Integritätsstatus der Backend-Appliance, die an das HTTP-Terminal angeschlossen ist. Die von INSSLR2 durchgeführten Prüfungen des Integritätsstatus können eine einfache TCP-Verbindungsprüfung oder eine komplexere HTTP-Anfrage umfassen, sofern auf der Begrenzung von INSSLR2 angegeben.
Im Falle eines Fehlers der angeschlossenen Appliance sendet INSSLR2 eine Fehlermeldung an das Grid-Dashboard oder führt, wenn es sich im redundanten Modus befindet und entsprechend konfiguriert wurde, einen Failover auf die INSSLR2-Sicherungs-Appliance durch.
Um Anwendungen zu unterstützen, die an einer einzelnen IP-Adresse für mehr als einen Service angezeigt werden müssen, konfigurieren Sie INSSLR2 zur transparenten Weiterleitung von einem anderen Datenverkehr als HTTP-Datenverkehr zu einem separaten Ausgabe-Terminal. Für solche Verbindungen fungiert die Appliance als Layer-3-Firewall/NAT-Router.
Ressourcen
Ressource |
Minimum |
Maximum |
Standard |
CPU |
0.05 |
4 |
0.05 |
Speicher |
192 MB |
2 G |
192 M |
Bandbreite |
1 Mbit/s |
2 Gbit/s |
200 Mbit/s |
Hinweise
Terminals
Name |
Richtung |
Protokoll |
Description |
ctl |
in |
http |
Erhalten von Benachrichtigungen, wodurch die Appliance primary/Sicherungs-Appliance wird. Dieses Terminal akzeptiert Verbindungen nur dann, wenn "fover_mode" auf "none" gesetzt ist. Gültige HTTP-Anforderung, mit der die Appliance aktiv oder passiv wird: /?action=<active|passive|kill|status> Wenn der andere Knoten nicht aktiv ist und das Failover nicht abgeschlossen werden kann, ist diese Aktion möglicherweise nicht erfolgreich und es wird kein Fehler zurückgegeben. Die aufrufende Anwendung muss den Status der Appliance mithilfe der folgenden Anfrage überprüfen: /?action=status Status Gibt den aktuellen Status der Appliance zurück (aktiv oder passiv). Durch "kill" wird die Appliance zum Herunterfahren gezwungen. Dies führt dazu, dass der andere Knoten übernimmt, sofern dieser aktiv ist. |
in |
in |
alle |
Akzeptiert den gesamten eingehenden Datenverkehr Sie können die mit diesem Terminal verbundene Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren. |
fover |
in |
raw |
Failover-Schnittstelle für Verbindung zwischen zwei INSSLR2-Instanzen. Sie können die mit diesem Terminal verbundene Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren. |
http |
out |
http |
HTTPS und/oder HTTP-Anfragen, die über die konfigurierte externe IP-Adresse eingehen, werden an das Ausgabe-HTTP als einfache HTTP-Anfragen auf dem standardmäßigen HTTP-Port 80 geleitet. Zusätzlich zu den vom Client bereitgestellten HTTP-Headern enthalten die weitergeleiteten Anfragen auch die folgenden Informations-Header:
|
fs |
out |
nfs |
Liefert eine NFS-Bereitstellung als alternativen Speicherort zum lokalen Schlüssel-Volume für das Speichern von Schlüsseln. Wenn sowohl das lokale Schlüssel-Volume als auch eine Verbindung mit dem Terminal "fs" bereitgestellt werden, startet die Appliance nicht. Dieses Terminal kann unverbunden bleiben. |
aux |
out |
alle |
Ausgang für andere Protokolle, falls konfiguriert. Weitere Informationen finden Sie in den "l3_accept_*"-Eigenschaften. |
nfy |
out |
http |
Sendet Benachrichtigungen, wenn ein Failover auftritt. Siehe auch fover_nfy_prefix. Dieses Terminal kann unverbunden bleiben. |
mon |
out |
cce |
Sendet Leistungs- und Ressourcenverwendungsstatistik. |
Eigenschaften
Name |
Typ |
Description |
dns1 |
IP addr |
Definiert den primären DNS-Server. Wenn der Remote-Host von seiner IP-Adresse angegeben wird, kann "dns1" leer bleiben. Andernfalls muss "dns1" angegeben werden. Standard: (leer) |
dns2 |
IP addr |
Definiert den sekundären DNS-Server, der verwendet wird, wenn der primäre DNS-Server nicht antwortet. Standard: (leer) |
l7_accept |
enum |
Gibt an, welche Arten von HTTP-Datenverkehr für die Weiterleitung an das HTTP-Terminal akzeptiert werden. Zulässige Werte: "https", "http", "both", "none". Wenn "none" festgelegt ist, wird der gesamte Datenverkehr nur gemäß den Eigenschaften für l3_accept_* umgeleitet. Standard: both |
l3_accept_proto |
enum |
Gibt an, welche Protokolle zum aux-Terminal weitergeleitet werden sollen. Zulässige Werte: "none", "tcp", "udp", "raw", "all". Wenn "raw" festgelegt wird, gibt die Eigenschaft "l3_accept_port" die Protokollnummer an. Wenn "all" festgelegt ist, wird der gesamte eingehende Datenverkehr auf der externen Schnittstelle zum Terminal "aux" geleitet. Die Eigenschaft "l7_accept" hat Vorrang vor dieser Eigenschaft. Hinweis: Wenn Sie für "l7_accept" einen anderen Wert als "none" festlegen, werden alle HTTP(s) zum HTTP-Terminal weitergeleitet. Der Rest des Datenverkehrs wird an "aux" geleitet, wie durch diese Eigenschaft angegeben. Standard: Keine |
l3_accept_port |
Zeichenfolge |
Eine durch Kommas oder Leerzeichen getrennte Liste mit Protokollen, die von dem von "l3_accept_proto" angegebenen Protokoll akzeptiert und an das Terminal "aux" geleitet werden sollen. Die Protokolle in der Liste können entweder als Portnummern oder als Standard-Protokollnamen, wie FTP und SMTP, angegeben werden, wenn Sie TCP- oder UDP-Ports (bzw. bei Raw-Protokollen GRE- und TCP-Ports) angeben. Die Port-Bereiche können auch als 1024:10000 oder 0:1024 angegeben werden. Wird dieses Feld leer gelassen, werden alle Ports des angegebenen Protokolls weitergeleitet. Hinweis: Wenn Sie "l3_accept_proto" auf "raw" festlegen, müssen Sie diese Eigenschaft festlegen, die in diesem Fall die Protokollnummer angibt. Es kann mehr als ein Raw-Protokoll angegeben werden, jedoch sind Protokollbereiche, wie 20:30, nicht zulässig. Standard: all |
allowed_hosts |
Zeichenfolge |
Liste von Hosts und/oder Teilnetzen, die Verbindungszugriff haben. Trennen Sie mehrere Einträge mit Leerzeichen oder Kommas. Beispiel für das unterstützte Format: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Standard: 0.0.0.0/0 (alle erlaubt). |
key_on_fs |
Zeichenfolge |
Gibt an, ob Schlüssel auf einem nfs-Mount über das fs-Terminal (on) oder auf dem lokalen Schlüsselvolume (off) gespeichert werden. Zulässige Werte: "on" und "off" Standard: "off" |
cert_file |
Zeichenfolge |
Dateiname (relativ zum Daten-Volume-Stamm) des Serverzertifikats, das diese Gateway-Instanz an den Client übergeben muss. Wenn Sie "l7_accept" auf "https" oder beide Eigenschaften festlegen, muss ein gültiges Zertifikat auf dem konfigurierten Daten-Volume an dem von dieser Eigenschaft angegebenen Speicherort vorhanden sein. Andernfalls kann INSSLR2 nicht gestartet werden. Weitere Informationen finden Sie im Abschnitt "Volumes". Standard: server.pem |
unsafe_ssl |
Zeichenfolge |
Aktivieren Sie die Verwendung von "unsicheren" SSL-Chiffren für die Kompatibilität mit älteren Browsern. Mit dem Standardwert "disabled" werden SSLv2-Chiffren sowie andere SSLv3- und TLSv1-Chiffren, die nicht als sicher gelten, deaktiviert. Es wird empfohlen, die Einstellung dieser Eigenschaft auf "disabled" zu belassen und nur dann zu ändern, wenn für ältere Browser, die nur mit SSLv2 funktionieren, https-Sitzungen unterstützt werden müssen. Wenn "'enabled" festgelegt ist, werden alle verfügbaren SSL-Chiffren auf dem System für HTTPS-Sitzungen verwendet. Dies gilt auch für SSLv2. Standard: "disabled" Diese Eigenschaft wurde in Version 1.2.1. hinzugefügt. |
keepalive |
Ganzzahl |
Gibt die größtmögliche Keepalive-Zeit zwischen INSSLR2 und dem Client an. Die Zeit wird in Sekunden angegeben. Standard: 15 |
Zeitlimit |
Ganzzahl |
Gibt an, wie viele Sekunden INSSLR2 auf eine Ausgabe vom Backend-Server wartet. Wenn der Backend-Server über die für die Zeitüberschreitung festgelegte Anzahl von Sekunden hinweg keine Ausgabe sendet, wird die Verbindung geschlossen. Standard: 300 |
max_request_size |
Ganzzahl |
Maximale Größe der Clientanfrage in MB. Erhöhen Sie den Wert, wenn Ihre Anwendung große Client-Uploads verarbeitet. Standardwert: 10 |
adv_config |
Zeichenfolge |
Fügt eine Rohkonfiguration hinzu, die in die nginx-conf innerhalb der location-Blöcke für sowohl http- als auch https-Listener (je nachdem, welcher aktiviert ist) einzufügen ist. Um zum Beispiel benutzerdefinierte Header hinzuzufügen, legen Sie "adv_config" auf "proxy_set_header myport $proxy_port;" fest. Dies fügt myport: 80 zur an den Backend-Server gesendeten Anfrage hinzu. "adv_config" kann auf eine gültige Anweisung für einen Speicherortblock festgelegt werden. Weitere Informationen finden Sie in der Nginx-Dokumentation. Sie können mehrere durch ; abgetrennte Konfigurationszeilen hinzufügen. Hinweis: Falls festgelegt, muss diese Eigenschaft eine zulässige Nginx-Syntax aufweisen, die mit ";" endet. Ansonsten kann die Appliance nicht gestartet werden. Standard: (leer) |
client_cert |
Zeichenfolge |
Aktiviert die Client-Zertifikatsauthentifizierung. Zulässige Werte: "on", "ask" und "off" Wenn auf "on" festgelegt, wird die Client-Zertifikatsauthentifizierung erzwungen und nur Clients mit zulässigen Zertifikaten können eine erfolgreiche Anfrage an INSSLR2 stellen. Wenn auf "ask" festgelegt, werden Clients zum Vorlegen von Zertifikaten aufgefordert, aber die Verbindung wird auch hergestellt, wenn kein zulässiges Zertifikat vorgelegt wird. Standard: "off" |
client_depth |
Ganzzahl |
Die Tiefe der Prüfung für ein verkettetes Client-Zertifikat. Diese Eigenschaft hat keine Auswirkungen, wenn "client_cert" nicht festgelegt ist. Zulässige Werte: 1 bis 9 Standard: 1 |
ca_list_client |
Zeichenfolge |
Eine Datei, die eine Sequenz von CA-Zertifikaten im PEM-Format enthält. Die Namen der aufgelisteten CA-Zertifikate werden an den verbundenen Client gesendet. Dies informiert den Client, welches Client-Zertifikat gesendet werden soll. Die gleiche Liste wird für das Überprüfen des Client-Zertifikats verwendet. Der Dateiname ist relativ zum Stamm des geladenen Schlüsselvolumes oder zum Stamm des nfs-Mounts, der über das fs-Terminal vorgenommen wurde, und kann einen Pfad enthalten. Beispiel: path/to/keys/ca_list_client.pem. Standard: ca_list_client.pem. |
cert_revocation_list |
Zeichenfolge |
Eine Datei, die die Zertifikatsaufhebungsliste (CRL), wie von der Zertifizierungsstelle generiert, enthält. Diese Liste identifiziert die von CA aufgehobene Client-Zertifikate. Es wird nach jedem an INSSLR2 übergebenen Client-Zertifikat gesucht und, wenn das Zertifikat aufgehoben wurde, gibt INSSLR2 die Antwort "SSL-Zertifikatsfehler" an den Client aus. Ähnlich wie bei "ca_list_client" ist der Dateiname relativ zum Stamm des geladenen Schlüsselvolumes oder zum Stamm des nfs-Mounts, der über das fs-Terminal vorgenommen wurde, und kann einen Pfad enthalten. Beispiel: path/to/keys/ca_list_client.pem. Standard: leer |
Eigenschaften der Systemintegritätsprüfung
Name |
Typ |
Description |
healthcheck_method |
Zeichenfolge |
Die Methode, die für die Systemintegritätsprüfung der Backend-Webserver verwendet wird.
Standard: "off". |
healthcheck_url |
Zeichenfolge |
Die URL, die verwendet wird, um die Systemintegritätsprüfung der Backend-Webserver mit den Systemintegritätsprüfungs-Methoden "http_get" und "http_head" durchzuführen. Sie kann als vollständige URL (z. B. http://host.name/file/to/check/for.php) oder als relativer Pfad (z. B. /file/to/check/for.php) angegeben werden. Wenn eine URL angegeben wird, verwendet INSSLR2 das HTTP/1.1-Protokoll während der Durchführung der Systemintegritätsprüfungen und setzt den aus UR extrahierten Hostnamen im Header Host: ein. Dies ermöglicht die Verwendung von virtuellen Hosts. Wenn sie als ein relativer Pfad angegeben wird, verwendet INSSLR2 das HTTP/1.0-Protokoll und sucht nach dem von dieser Eigenschaft angegebenen Dokument. Standard: / |
healthcheck_agent |
Zeichenfolge |
Zeichenfolge, die als Agentbezeichner für die Methoden http_get und http_head der Systemintegritätsprüfung verwendet wird. Standard: INSSLR2-health-check |
healthcheck_regexp |
Zeichenfolge |
Eine für den http_head- und http_get-Systemintegritätsprüfungs-Modus verwendete Testzeichenfolge. Kurze oder allgemeine Werte, wie OK, können fälschlicherweise zu positiven Übereinstimmungen führen. Diese Zeichenfolge ist ein regulärer Perl-Ausdruck. Standard: ^HTTP\/1\.\d\s+200 |
healthcheck_interval |
Ganzzahl |
Intervall zwischen Systemintegritätsprüfungen der Backend-Webserver. Dieser wird in Sekunden angegeben. Standard: 60 Sekunden |
healthcheck_timeout |
Ganzzahl |
Die maximale Zeit in Sekunden, die eine Systemintegritätsprüfung dauern kann. Wenn die Zeitüberschreitung überschritten wird, wird die Prüfung als fehlgeschlagen betrachtet und beendet. Eine neue Prüfung wird gestartet. Standardwert: 10 |
healthcheck_alert |
Ganzzahl |
Anzahl von aufeinanderfolgenden Systemintegritätsprüfungs-Fehlern, nach denen INSSLR2 anfängt, Fehler auf dem Grid-Dashboard auszugeben. Wenn "0" festgelegt ist, werden keine Fehler im Dashboard angezeigt, aber die Systemintegritätsprüfungen sind noch aktiviert. Legen Sie diesen Wert nicht zu niedrig fest, um unnötige Fehlermeldungen beim Starten/Beenden der Anwendung zu vermeiden. Wenn Sie INSSLR2 im redundanten Modus ausführen und im Falle eines Fehlers des Backend-Servers auf den Sicherungsknoten umschalten möchten, finden Sie unter "fover_on_healthcheck" weitere Informationen. Standard: 3 |
Erweiterte Eigenschaften für Failover-Szenarien
Name |
Typ |
Description |
fover_mode |
Zeichenfolge |
Failover-Modus. Gültige Werte: "none" (kein Failover), "symmetrisch" und "asymmetrisch" Wenn "none" festgelegt ist, verhält sich INSSLR2 wie eine INSSLR2-Appliance und beinhaltet keine Failover-Funktionen. Wenn "symmetrisch" festgelegt ist, wird INSSLR2 im symmetrischen Failover-Modus ausgeführt. Sie benötigen zwei INSSLR2-Appliances, die beide im symmetrischen Failover-Modus ausgeführt werden. Wenn "asymmetrisch" festgelegt ist, wird INSSLR2 im asymmetrischen Failover-Modus ausgeführt. Sie benötigen zwei INSSLR2-Appliances, die beide im asymmetrischen Failover-Modus ausgeführt werden. Hinweis: Bei der Ausführung des Failover-Modus muss für beide Appliances "fover_mode" auf den gleichen Wert festgelegt werden. Standard: Keine |
fover_remote_ip |
IP addr |
Remote-IP-Adresse der anderen INSSLR2-Appliance, die im Failover-Modus verwendet wird. Hinweis: Lassen Sie dieses Feld leer, wenn Sie "fover_mode" auf "none" festgelegt haben. Standard: (leer) |
fover_nfy_prefix |
Zeichenfolge |
URL-Präfix, das angefordert wird, wenn ein Failover auftritt. Die angeforderte URL ist: http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask und geht durch das nfy-Terminal. Standard: ? |
fover_on_healthcheck |
Ganzzahl |
Geben Sie an, ob INSSLR2 ein Failover zum Sicherungsknoten vornehmen soll, wenn eine Systemintegritätsprüfung auf dem HTTP-Terminal fehlschlägt. Wenn dies auf einen Wert ungleich Null festgelegt wird, nimmt INSSLR2 ein Failover nach der durch diesen Wert festgelegten Anzahl an Systemintegritätsprüfungen vor. Legen Sie diesen Wert nicht zu niedrig fest, um unnötige Fehlermeldungen beim Starten oder Beenden der Anwendung zu vermeiden. Wenn Sie nur über Fehler benachrichtigt werden möchten, erhalten Sie weitere Informationen unter "healthcheck_alert". Standard: 0 (deaktiviert). |
Volumes
Name |
Description |
key |
Ein schreibgeschütztes Daten-Volume (Platzhalter), das mindestens den SSL-Serversignaturschlüssel enthält. Die Datei sollte im PEM-Format vorliegen. Das Zertifikat sollte sich im Stammverzeichnis des Schlüsselvolumes (server.pem) befinden, es sei denn, die cert_file-Eigenschaft wurde in einen anderen Namen geändert. |
Die folgenden Meldungen können entweder in der Appliance-Protokolldatei oder im Systemprotokoll der Grid-Steuerung angezeigt werden, wenn die Appliance nicht startet:
INSSLR2 erkennt den Ausfall von INSSLR2 nach etwa 10 Sekunden und benötigt weitere 10 Sekunden für das Failover zur anderen Anwendung. Die Gesamtdauer vom ersten Anwendungsfehler bis zu dem Zeitpunkt, an dem die andere Anwendung den Datenverkehr übernimmt, beträgt ca. 20 Sekunden.
INSSLR2 leitet mindestens 3.000 Transaktionen (Anfrage/Antwort-Paare) pro Sekunde weiter, abhängig von Dokumentgröße und verfügbarer Netzwerkbandbreite.
INSSLR2 leitet mindestens 7 MB/Sekunde weiter, abhängig von Dokumentgröße und verfügbarer Netzwerkbandbreite
Mit seinem Standardspeicher unterstützt INSSLR2 mindestens 500 gleichzeitig ausstehende Anfragen. Eine ausstehende Anfrage ist eine offene TCP-Verbindung vom Client, auf der eine oder mehrere unvollständige HTTP-Anfragen vorhanden sind.
Die maximale Zahl der gleichzeitigen Verbindungen hängt vom verfügbaren Speicher ab. Die Anzahl an gleichzeitigen http-Transaktionen wird pro 16 MB Speicher um 500 erhöht.
Beispiel: Wenn Sie im redundanten Modus 2.000 Verbindungen gleichzeitig aufrechterhalten möchten, benötigen Sie 100 M + 3*16 M = 148 M. Der im redundanten Modus mindestens benötigte Speicher beträgt 100 M.
Beim Ausführen im redundanten Modus ("fover_mode" ist nicht "none"), gibt INSSLR2 bei Aktivität/Passivität Benachrichtigungen aus. Dies erfolgt beim Starten des aktiven Knotens bzw. bei der Durchführung eines Failovers. Jeder Knoten sendet eine Benachrichtigung darüber, dass er aktiv oder passiv wurde.
INSSLR2 sendet zwei Benachrichtigungen:
Die angeforderte URL ist:
http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask
Mit "fover_nfy_prefix" können Sie den Speicherort des aufgerufenen Remote-Skripts ändern und/oder zusätzliche Parameter hinzufügen.
Beispiele für Werte vom Typ "fover_nfy_prefix":
/path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Hinweise:
INSSLR2 führt einen Cronjob pro Minute aus, der das Folgende überprüft:
Wenn eine der Aussagen zutrifft, wird eine Fehlermeldung an das Grid-Dashboard gesendet. Wenn mehr als ein Test fehlschlägt, wird eine zusammenfassende Meldung mit allen Fehlern im Grid-Dashboard platziert.
Jeder Fehler wird nur ein Mal pro Stunde an das Grid-Dashboard gesendet. In den ersten 5 Minuten nach dem Start der Appliance werden keine Fehler gemeldet. Dies verhindert Fehlalarme, wenn der andere Knoten in der Replikation noch nicht gestartet wurde.
Um SSL zu verwenden, benötigen Sie sowohl das Zertifikat mit Signatur als auch den privaten Schlüssel, mit dem es verschlüsselt wurde. Der Schlüssel und das Zertifikat sollten im PEM-Format vorliegen und in einer von der Eigenschaft "cert_file" angegebenen Datei gespeichert sein.
Serverzertifikate generieren
Sie können ein Serverzertifikat generieren, das gegen eine Gebühr von einer vertrauenswürdigen Zertifizierungsstelle (CA) signiert werden kann. Alternativ erstellen Sie ein selbstsigniertes Zertifikat.
Führen Sie folgende Schritte aus:
openssl genrsa -out privkey.pem 2048
Mithilfe des folgenden Befehls können Sie außerdem einen kennwortgeschützten Schlüssel generieren. Wenn Sie einen kennwortgeschützten Schlüssel generieren, müssen Sie allerdings das Kennwort entfernen, bevor Sie ihn für INSSLR2 verwenden. INSSLR2 benötigt einen Schlüssel ohne Kennwort.
openssl genrsa -des3 -out privkey.pem 2048
Führen Sie den folgenden Befehl aus:
openssl req -new -key privkey.pem -out server.csr
Wenn Sie die CSR-Datei an Ihre vertrauenswürdige Zertifizierungsstelle gesendet haben, erhalten Sie ein signiertes Zertifikat (CRT-Datei), das Sie verwenden können.
Führen Sie den folgenden Befehl aus:
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Verwenden von Serverzertifikaten
Sie können jetzt Zertifikat und Schlüssel in einer Datei speichern und in INSSLR2 verwenden, indem Sie den folgenden Befehl ausführen:
cat privkey.pem server.crt > server.pem
Wenn Ihr Schlüssel kennwortgeschützt ist, können Sie das Kennwort durch die Ausführung des folgenden Befehls entfernen:
openssl rsa -in key_with_pass.pem -out privkey.pem
Verwenden vorhandener apache+mod_ssl-Serverzertifikate
INSSLR2 ermöglicht es Ihnen, ein vorhandenes Zertifikat zu verwenden, das in Apache verwendet wird. Überprüfen Sie anhand der obigen Schritte, ob der Schlüssel kennwortgeschützt ist, und speichern Sie anschließend das private Zertifikat und den Schlüssel in einer Datei.
Zum Beispiel:
Wenn Sie ein verkettetes Zertifikat verwenden, sollten Sie auch das vom Aussteller bereitgestellte vorübergehende Zertifikat einschließen. Speichern Sie den privaten Schlüssel, das Zertifikat und das vorläufige Zertifikat in dieser Reihenfolge in einer Datei.
Zum Beispiel:
Wichtig! Der Serversignaturschlüssel ist der Identitätsnachweis Ihrer Website. Er ist angreifbar, weil er ist nicht kennwortverschlüsselt ist, sodass die Appliance ihn ohne Ihre Hilfe lesen kann.
Achten Sie bei der Installation auf dem Daten-Volume darauf, die Schlüsseldatei zu schützen. Verwenden Sie das Daten-Volume nicht für andere Zwecke, und machen Sie es nicht sichtbar für einen Webserver, beispielsweise, um Daten mit Webzugriff, wie HTML-Seiten oder -Skripte, zu hosten.
Das folgende Beispiel zeigt, wie Sie Ihre eigene Zertifizierungsstelle erstellen und sie zum Unterzeichnen eigener Zertifikate mit OpenSSL verwenden. Dies wurde mithilfe von OpenSSL 0.9.8b getestet, die gleiche Version, die in INSSLR2 installiert ist.
Zertifizierungsstelle erstellen
Wenn Sie bereits über eine eigene Zertifizierungsstelle verfügen, mit der ein selbstsigniertes Serverzertifikat erstellt wird, können Sie diesen Schritt überspringen und diese Zertifizierungsstelle verwenden. Wenn Sie die Instrumente der vertrauenswürdigen Zertifizierungsstelle für Ihre Anwendung erstellt haben, ist es wichtig, dass die Umgebung sicher ist.
Wichtig! Der private Schlüssel für die Zertifizierungsstelle bildet die Vertrauensgrundlage für die Anwendung. Sie sollten also immer wissen, wo er sich befindet und ihn nicht an Dritte weitergeben.
Führen Sie folgende Schritte aus:
openssl genrsa -des3 -out CA/private/CA_key.pem 2048
openssl req -new -key CA/private/CA_key.pem -x509 -days 365 -out CA/CA_cert.pem
Von der Zertifizierungsstelle signierte Client-Zertifikate erstellen
Sie können Client-Zertifikate erstellen, die von einer Zertifizierungsstelle signiert werden.
Führen Sie folgende Schritte aus:
openssl genrsa -out clientA_privkey.pem 2048
Um einen kennwortgeschützten Schlüssel zu erstellen, verwenden Sie den "-des3"-Schalter.
openssl req -new -key clientA_privkey.pem -out clientA_request.csr
openssl x509 -req -days 365 -in clientA_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAcreateserial -out clientA.cer
Hinweise:
Zum Beispiel:
openssl genrsa -out clientB_privkey.pem 2048
openssl req -new -key clientB_privkey.pem -out clientB_request.csr
openssl x509 -req -days 365 -in clientB_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAserial CA/CA_cert.srl -out clientB.cer
cat clientA_privkey.pem clientA.cer > clientA.pem
openssl pkcs12 -export -in clientA.cer -inkey clientA_privkey.pem -out clientA.p12
Erstellen der von INSSLR2 verwendeten CA-Listen-Dateien
Widerrufen der von der Zertifizierungsstelle signierten Client-Zertifikate
Um ein von der CA herausgegebenes Client-Zertifikat zu widerrufen, verwenden Sie den folgenden Befehl:
openssl ca. -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise
Unten sehen Sie ein Beispiel für "openssl.conf". Der Parameter "crl_reason" kann entweder "unspecified", "keyCompromise", "CACompromise", "affiliationChanged", "superseded", "cessationOfOperation", "certificateHold" oder "removeFromCRL" sein. Bei der Abstimmung des Grunds wird die Groß-/Kleinschreibung nicht beachtet.
So generieren Sie die Zertifikatsaufhebungsliste (Certificate Revocation List, CRL) neu:
openssl ca. -config openssl.conf -gencrl -out CA/crl.pem
In diesem Beispiel ist "crl.pem" die Datei, die als Eigenschaft "cert_revocation_list" an INSSLR2 übergeben werden muss.
Dies ist eine Beispielkonfigurationsdatei für das obige Beispiel:
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
Erstellen der von INSSLR2 verwendeten Zertifizierungsstellen-Listendateien
Sie können Zertifizierungsstellen-Listendateien erstellen, die von INSSLR2 verwendet werden.
Erstellen der von der Eigenschaft "ca_list_client" identifizierten Datei:
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
Bei Bedarf kann das Serverzertifikat von INSSLR2, z. B. "server.pem", wie die Client-Zertifikate erstellt und ebenso von der erstellten Zertifizierungsstelle signiert werden. Verwenden Sie für dieses Zertifikat kein Kennwort.
Wählen Sie hierzu "Tools" => "Options" => "View Certificates" => "Your Certificates" => "Import". Richten Sie den Browser auf die IP-Adresse von INSSLR2.
openssl s_client -host IP-address -port 443 -showcerts -ssl3 -cert clientA.cer -key clientA_privkey.pem -state
Client-Zertifikat-Header
Wenn sich ein Client über HTTPS mit INSSLR2 verbindet, und es sich um ein Client-Zertifikat handelt, fügt INSSLR2 die folgenden Header in die Anfrage ein, die an den Backend-Server ausgegeben wird:
Die Anwendung kann selbst entscheiden, ob diese Header verwendet werden oder nicht. INSSLR2 gibt diese Informationen einfach weiter, ohne sie zu überprüfen. Geprüft werden ausschließlich die Richtigkeit von Signatur und Verschlüsselung.
Webanwendungen
Um den http(s)-Zugriff auf Ihre Anwendung zu ermöglichen, schließen Sie das HTTP-Terminal direkt an die NET-Appliance an.
Wenn Sie eine skalierbare Webanwendung benötigen, verbinden Sie das HTTP-Terminal mit einer HALB-Appliance.
In den Konfigurationsbeispielen werden nur Eigenschaften aufgeführt, die auf Nicht-Standard-Werte festgelegt sind.
Name |
Typ |
Description |
17_accept |
http/https/both |
Gibt an, welches l7-Protokoll verwendet wird. Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten. |
Webanwendungen mit Zusatzdiensten
Wenn Sie abgesehen von http über weitere Dienste in Ihrer Anwendung verfügen, können Sie HTTP-Datenverkehr mithilfe von INSSLR2 an das HTTP-Terminal weiterleiten und das Terminal "aux" für andere Dienste verwenden.
Eigenschaft |
Wert |
Hinweise |
17_accept |
http/https/both |
Gibt an, welches l7-Protokoll verwendet wird. Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten. |
l3_accept_proto |
tcp |
Tcp-Ports 25.110.143 an Terminal "aux" umleiten. |
l3_accept_port |
25,110,143 |
Tcp-Ports 25.110.143 an Terminal "aux" umleiten. |
Webanwendungen mit mehreren Zusatzdiensten
Wenn Sie mehrere TCP/UDP-Dienste und HTTP haben, können Sie den HTTP-Datenverkehr mithilfe von INSSLR2 an das HTTP-Terminal weiterleiten und das Terminal "aux" für die Weiterleitung des übrigen Datenverkehrs an PS8 verwenden. PS8 übergibt den gewünschten Datenverkehr anschließend an die Backend-Server.
Eigenschaft |
Wert |
Hinweise |
17_accept |
http/https/both |
Gibt an, welches l7-Protokoll verwendet wird. Wenn HTTPS oder beides festgelegt ist, muss das Schlüssel-Volume das mit der Eigenschaft "cert_file" festgelegte SSL-Zertifikat enthalten. |
l3_accept_proto |
all |
Leiten Sie den gesamten IP-Datenverkehr (ausgenommen ICMP), der nicht an das HTTP-Terminal übergeben wird, an das Terminal "aux" weiter. |
Redundante Webanwendungen
Wenn Sie eine redundante Webanwendung bereitstellen möchten, können Sie die Anwendung kopieren und mithilfe von INSSLR2 Failover-Funktionen für die externe IP-Adresse bereitstellen.
Hinweis: Wenn zwei INSSLR2-Appliances in der gleichen Anwendung für die Ausführung im redundanten Modus konfiguriert werden, wird eine Warnmeldung angezeigt, wenn Sie die gleiche IP-Adresse auf zwei unterschiedlichen Schnittstellen konfigurieren. Ignorieren Sie diesen Fehler.
Sicherungswebanwendung
Wenn Sie nur eine Sicherungsanwendung benötigen, die Benutzer über Ausfallzeiten benachrichtigt, können Sie mithilfe von INSSLR2 eine Sicherungsanwendung erstellen, die minimale Ressourcen benötigt.
Verwendete Appliances:
INSSLR2 auf primärer Anwendung
Eigenschaft |
Wert |
Hinweise |
fover_mode |
asymmetric |
Ausführung im asymmetrischen Modus, um die Sicherungsanwendung nur zu verwenden, wenn die primäre Anwendung ausgefallen ist. |
fover_remote_ip |
192.168.100.2 |
Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll. |
INSSLR2 auf Sicherungsanwendung
Eigenschaft |
Wert |
Hinweise |
fover_mode |
asymmetric |
Ausführung im asymmetrischen Modus, um die Sicherungsanwendung nur zu verwenden, wenn die primäre Anwendung ausgefallen ist. |
fover_remote_ip |
192.168.100.1 |
Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll. |
Hinweis: Sie können die Attribute der mit dem Fover-Terminal verbundenen Schnittstelle im Anwendungskonfigurations-Editor auf der Registerkarte "Schnittstellen" konfigurieren. Beispiel: Eigenschaften "fover_local_ip" und "fover_netmask".
Redundante Webanwendung (einzelne Anwendung)
Wenn Ihre Anwendung im redundanten Modus ausgeführt werden soll, ohne dass eine neue Anwendung erstellt wird, können Sie die Appliances verdoppeln und im redundanten Modus ausführen. Da dies bedeutet, mindestens zwei Webserver und zwei Datenbank-Appliances im normalem Modus zu verwenden, werden sie alle verwendet, was eine zusätzliche Skalierbarkeit ermöglicht. Allerdings können beide auch getrennt voneinander von der Anwendung verwendet werden, falls eine der Appliances ausfällt.
Wenn Sie zusätzliche Skalierbarkeit benötigen, können Sie weitere Web- und Datenbank-Appliances hinzufügen. In diesem Beispiel wird die Hälfte der Appliances (in1, sw1, web1, db1) in einer Failover-Gruppe ausgeführt. Die übrigen Appliances (in2, sw2, web2, db2) befinden sich in einer anderen Failover-Gruppe, sodass die Anwendung einen Serverabsturz überstehen kann. Diese Anwendung bietet Redundanz zu sehr geringen Kosten, da alle Appliances (außer einer INSSLR2- und einer HALB-Appliance, die sehr geringe Ressourcen benötigen) sich im aktiven Zustand befinden und keine Ressourcen für die Sicherungsanwendung benötigt werden. Diese wird nämlich nur ausgeführt, wenn die primäre Appliance fehlschlägt.
in1
Eigenschaft |
Wert |
Hinweise |
fover_mode |
symmetric |
Im symmetrischem Modus ausführen. |
fover_remote_ip |
192.168.100.2 |
Remote-IP-Adresse, die für die Kommunikation zwischen den INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll. |
in2
Eigenschaft |
Wert |
Hinweise |
fover_mode |
symmetric |
Im symmetrischem Modus ausführen. |
fover_remote_ip |
192.168.100.1 |
Remote-IP-Adresse, die für die Kommunikation zwischen den INSSLR2-Appliances in den beiden Anwendungen verwendet werden soll. |
db1
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
server_id |
1 |
Masterserver 1. Muss von der Remote-Anwendung abweichen |
rpl_mode |
master_and_slave |
Master und Slave |
db2
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
server_id |
1 |
Masterserver 1, muss von der Remote-Anwendung abweichen |
rpl_mode |
master_and_slave |
Master und Slave |
Redundante Webanwendung (zwei identische Anwendungen)
Sie können zwei identische Anwendungen auf dem gleichen Grid, aber auf getrennten Servern, oder auf unterschiedlichen Grids ausführen, wenn von beiden Grids auf die IP-Adresse zugegriffen werden kann. Dies bewirkt, dass der Ausfall eines Servers nur eine der Anwendungen betrifft.
Hinweis: Wenn zwei INSSLR2-Appliances in der gleichen Anwendung für die Ausführung im redundanten Modus konfiguriert werden, wird eine Warnmeldung angezeigt, wenn Sie die gleiche IP-Adresse auf zwei unterschiedlichen Schnittstellen konfigurieren. Ignorieren Sie diesen Fehler.
Das Beispiel unten zeigt eine Anwendung, die eine Datenbank-Appliance verwendet, die auch im redundanten Modus ausgeführt wird. Wenn eine Anwendung fehlschlägt, kann die andere Anwendung ohne Datenverlust übernehmen.
Verwendete Appliances:
Clientanfragen treffen auf dem Insslr-Gateway ein. Das Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an den Webserver "web1" oder "web2" leitet.
Die Webserver greifen auf die db-Datenbank zu. Die Db-Appliance stellt eine Verbindung zur Remote-Anwendung her. Damit die Datenbank reproduziert werden kann, ist die Remote-Anwendung eine identische Kopie, wobei der einzige Unterschied in der "server_id" von "db" und der Netzwerkeinrichtung besteht.
Die Remote-Anwendung ist mit der db-Appliance über das Gateway "repl_in" verbunden, das so konfiguriert ist, dass nur die Verbindung vom Gateway "repl_out" der Remote-Anwendung möglich ist. Die db-Appliances in den beiden Anwendungen werden in einer Master-Master-Einrichtung ausgeführt, sodass sie immer über identische Daten verfügen.
Beispiel für eine Eigenschaftskonfiguration
Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden. Webzugriff auf db ist über den admin-Gateway auf Port 8080 verfügbar.
insslr
Eigenschaft |
Wert |
Hinweise |
fover_mode |
symmetric |
Im symmetrischem Modus ausführen. |
fover_remote_ip |
192.168.100.2 |
Remote-IP-Adresse, die für die Kommunikation zwischen INSSLR2-Appliances in den zwei Anwendungen verwendet werden soll. Ändern Sie diese in 192.168.100.1 auf der Remote-Anwendung. |
db
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
1 |
Masterserver 1, muss auf der zweiten Anwendung abweichen |
rpl_mode |
master_and_slave |
Master und Slave |
Wichtig! Nur eine der Anwendungen ist jederzeit aktiv, die andere wird einfach für Failover ausgeführt und verwendet, wenn die aktive Anwendung fehlschlägt.
Hinweise:
INSSLR2 verwendet zusätzlich zu den Drittanbieter-Open-Source-Paketen der jeweiligen Basisklasse LUX6 die folgenden Drittanbieter-Open-Source-Pakete.
Software |
Version |
Geändert |
Lizenz |
Hinweise |
PyXML |
0.8.4-19 |
Nein |
N/A |
|
heartbeat |
3.0.4-1 |
Nein |
N/A |
|
heartbeat-libs |
3.0.4-1 |
Nein |
N/A |
|
iptables |
1.4.7-5.1.el6_2 |
Nein |
N/A |
|
libgcrypt |
1.4.5-9.el6_2.2 |
Nein |
GPLv2 |
N/A |
libgpg-error |
1.7-4 |
Nein |
N/A |
|
lighttpd |
1.4.18-1 |
Nein |
N/A |
|
nginx |
0.7.62-1 |
Ja |
N/A |
|
sudo |
1.7.4p5-13.el6_3 |
Nein |
N/A |
|
telnet |
0.17-47 |
Nein |
N/A |
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|