2012-03-26 2 views
1

Ich habe Server A, der unsere Hauptseite auf www.example.com hostet; Wir haben ein SSL-Zertifikat, das * .example.com abdeckt.Konfigurieren von Apache auf dem Server b.example.com, damit sichere Ressourcen auf b.example.com ohne Warnungen aus example.com angefordert werden können?

Auf der sicheren Seite unserer Website möchten wir eine Anfrage an einen von uns geschriebenen Web-Service richten und auf einem separaten Rechner/IP, Server B, hosten. Der Web-Service wurde sub.example.com zugewiesen Das deckt unser SSL-Zertifikat ab.

Was müssen wir tun, um Apache auf Server B zu konfigurieren? Wie ich es, abgesehen von dem virtuellen Abschnitt hört auf 443, zu verstehen, müssen wir auch so konfigurieren:

SSLEngine On 
SSLCertificateFile /etc/apache2/ssl/server.crt 
SSLCertificateKeyFile /etc/apache2/ssl/server.key 

Ich denke, meine Frage ist - müssen wir hier unser Zertifikat und den Schlüssel vom Server A verwenden, oder wir können Erstellen Sie einfach ein selbstsigniertes on, vielleicht spezifizieren Sie sub.example.com beim Erstellen des Zertifikats?

Ich sollte hinzufügen - das Ziel ist es, Browser Sicherheitswarnungen und dergleichen zu vermeiden, wenn Besucher den sicheren Teil von example.com auf Server A. betreten. .

Vielen Dank!

Antwort

2

Um Warnungen zu vermeiden, sollten alle Anforderungen, die von einer Seite gestellt werden, die von einer Seite geliefert wird, die unter Verwendung einer https://-URL abgerufen wurde, ebenfalls mit HTTPS erstellt werden.

Beide Server sollten mit Zertifikaten konfiguriert werden, die für die Hostnamen gültig sind, die sie bedienen möchten.

Wenn Ihr Web-Service (auf Server B) nicht direkt von den Benutzern von Server A verwendet wird, dh wenn der Browser mit Server A kommuniziert, dann kommuniziert Server A mit Server B im Hintergrund (effektiv Server A) ein Client dort), aber der Browser stellt niemals eine Anfrage an Server B, Sie können ein selbstsigniertes Zertifikat auf Server B ohne Probleme verwenden, vorausgesetzt, Sie konfigurieren Ihre Anwendung auf Server A, um dieses Zertifikat zu vertrauen (dies hängt ganz davon ab wie Diese Anwendung ist implementiert).

Wenn der Browser des Benutzers Verbindungen zu Server A und Server B herstellen soll (möglicherweise über XHR oder zum Laden zusätzlicher Inhalte wie Bilder oder Skripts), sollten Sie sicherstellen, dass beide Server Zertifikate verwenden, denen das Zertifikat vertraut Browser. In diesem Fall müssten Sie Ihr Platzhalterzertifikat + privaten Schlüssel auf beiden verwenden (oder mindestens Zertifikate + priv. Schlüssel, die auf jedem gültig sind.)

+0

Danke für die informative Antwort. Um zu klären - wir haben Situation (2). Der Browser macht AJAX-Anfragen an den Web-Service auf Server B, um zusätzlichen Inhalt zu laden. Können Sie den privaten Schlüsselteil etwas mehr erklären? Wäre es möglich, unseren eigenen privaten Schlüssel für Server B zu erstellen (ich nehme an, es wäre eine Art Unterschlüssel für den ursprünglichen privaten Schlüssel auf Server A)? – Edwardr

+0

Normalerweise bedeutet der Ausdruck "Installation eines Zertifikats" auf einem Server die Installation des entsprechenden privaten Schlüssels. Da Sie ein Platzhalterzertifikat verwenden, kann das gleiche Zertifikat und der gleiche private Schlüssel auf den beiden Servern verwendet werden. Es gibt jedoch nur einen privaten Schlüssel für dieses Zertifikat, daher muss es kopiert und auf den beiden Servern installiert werden. Wenn Sie einen anderen privaten Schlüssel verwenden möchten, benötigen Sie auch ein anderes Zertifikat (Sie müssen dies also separat beantragen). (Es ist im Allgemeinen eine bessere Praxis und einer der Gründe, warum Wildcard-Zertifikate nicht empfohlen werden.) – Bruno

+0

Was passiert, wenn wir ein bestimmtes sub.example.com-Zertifikat beantragen, aber auch ein Wildcard-Zertifikat auf * .example.com haben? Gibt es irgendwelche vorhersehbaren Probleme? Müssen wir von derselben CA-Behörde kaufen? Ich möchte aus Sicherheitsgründen nicht mehrere Kopien eines privaten Schlüssels auf verschiedenen Servern haben, daher wäre ein separates Zertifikat am besten. – Edwardr

Verwandte Themen