Nutzung von SSL-Zertifikaten für HTTPS-Aufruf

12. Feb 2017

Weblication® CMS unterstützt standardmässig https-Aufrufe Ihrer Internetseiten.

Sollen Formulardaten über eine gesicherte Verbindung (SSL) abgeschickt werden, können Sie auch in Weblication® CMS das HTTPS-Protokoll nutzen. Das CMS unterstützt HTTPS-Aufrufe standardmässig.

Auf diese Weise können Sie z.B. einen Online-Shop, Login-Formulare, Kontakt-Formulare für sensible Daten, usw. sicher vom Client zum Webserver verschicken.

Das SSL-Zertifikat sollte auf die lizenzierte Domain ausgestellt sein, damit die https-Aufrufe direkt über die lizenzierte Domain erfolgen können. Sofern kein WildCard-SSL-Zertifikat im Einsatz ist, setzen Sie die Aufrufe auf den HTTP_HOST, auf den das SSL-Zertifikat erstellt wurde (also z.B. www.domain.dd oder nur domain.dd).

Bitte beachten Sie, daß diese Anleitung eine allgemeine Anleitung ist, die eventuell in Ihrem speziellen Fall nicht den gewünschten Erfolg bringt und ggf. auf Ihr individuelles Projekt angepasst werden muß! 

Bedenken Sie, daß mittlerweile der Aufruf von Seiten über HTTPS teilweise für ein besseres Suchmaschinen-Ranking sorgt, weshalb eine generelle Umstellung der Webseiten auf HTTPS zu empfehlen ist. Aber nicht nur das Ranking sollte ein Grund für den Einsatz von SSL-Zertifikaten zum HTTPS-Einsatz sein. Inhalte, die ungeschützt übertragen werden (z.B. Seiteninhalte über das HTTP-Protokoll) können manipuliert werden und somit z.B. mit Schadcode o.ä. versehen werden!

Bei einer Umstellung auf HTTPS müssen Sie darauf achten, daß alle Aufrufe in den Seiten über HTTPS erfolgen müssen. Sofern Sie in den Seiten andere Inhalte einbinden (z.B. Font-Dateien, Wetter-Apps, Styles, Skripts, etc.) müssen diese auch über https eingebunden werden. Ansonsten wird dies vom Browser als gemischter Inhalt angesehen und somit als unsicher eingestuft, was je nach Endgerät dazu führen kann, daß die Seite nicht aufrufbar ist (Sicherheitshinweis des Browsers).
In der Browserkonsole (z.B. Firebug) kann ein Hinweis z.B. wie folgt aussehen:

Mixed Content: The page at 'https://www.domain.dd/de/index.php' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Oswald'. This request has been blocked; the content must be served over HTTPS.

1) Nur Software Login-Formular über https aufrufen

Sofern Sie nur das Software Login-Formular (http://IhreLizenzierteDomain.tld/weblication/) und das Weblication® CMS Backend auf HTTPS umleiten wollen, können Sie dies z.B. über eine .htaccess Datei erzwingen. Hierzu gelten die allgemeinen Regeln zu mod_rewrite unter Apache.
Nachfolgend ein Beispiel für diesen Fall:

Beispiel 1.1: Inhalt von /weblication/.htaccess bei Umleiten der Software-Loginmaske auf HTTPS

RewriteEngine on

# alle Aufrufe ungleich Port 443 umleiten
RewriteCond %{SERVER_PORT} !^443$
# Umleitung beschränken auf Aufrufe von /weblication (am Anfang der URL) umleiten
RewriteCond %{REQUEST_URI} ^/weblication [NC]
# tmpHTTP-Aufrufe und Imagescript von der Umschreibung ausschliessen,
# damit Weblication Formulare und Bilder im WYSIWYG-Feld funktionieren
RewriteCond %{REQUEST_URI} !^/weblication/grid5/tmpHTTP [NC]
RewriteCond %{REQUEST_URI} !^/weblication/grid5/scripts/wImage.php [NC]
# Umschreibregel bei zutreffen der zuvor definierten Fälle (Conditions):
RewriteRule ^(.*)$ https://IhreLizenzierteDomain.tld/weblication/$1 [R=301,L]

# RewriteRule mit Verwenden eines Platzhalters fuer den HTTP_HOST:
# RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Beachten Sie beim vorigen Beispiel, dass ein Login-Formular in der Präsenz (z.B. als Weblic® Element eingefügt) nicht von dieser Umleitung berücksichtigt wird!

2) Alle Aufrufe über https umleiten

Wollen Sie alle Aufrufe auf HTTPS umleiten, müssen Sie die .htaccess Definitionen in einer .htaccess Datei definieren, die direkt in der DOCUMENT_ROOT der Domain liegt (Pfade entsprechend anpassen).

Testen Sie bei allen Umsetzungen Ihre Präsenz auf volle Funktionalität, um evtl. Probleme auf Ihr Projekt bezogen sofort zu erkennen.

Beispiel 2.1: Inhalt von /.htaccess bei Umleiten aller Aufrufe auf HTTPS und nur www-Aufrufe ermöglichen

RewriteEngine on

# alle Aufrufe ungleich Port 443 umleiten
RewriteCond %{SERVER_PORT} !^443$ [NC,OR]
RewriteCond %{HTTP_HOST} ^IhreLizenzierteDomain\.tld$
RewriteRule ^(.*)$ https://www\.IhreLizenzierteDomain.tld/$1 [R=301,L]

## !! Beachten Sie die Hinweise unten !!

Beispiel 2.2: Inhalt von /.htaccess bei Umleiten aller Aufrufe auf HTTPS über HTTP_HOST Server-Variable

RewriteEngine on

# alle Aufrufe ungleich Port 443 umleiten
RewriteCond %{SERVER_PORT} !^443$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

## !! Beachten Sie die Hinweise unten !!
Setzen Sie die Umleitung auf die Domain, auf die auch das SSL-Zertifikat erstellt wurde, womit Sie also ein Aufruf mit oder ohne www. berücksichtigen müssen!

Wichtige Hinweise

  • Der Server muss mod_rewrite unterstützen, was Sie bei Ihrem Provider erfragen können!
  • Sofern in einem Unterverzeichnis über eine .htaccess-Datei der Befehl "RewriteEngine ON" gesetzt wird, gilt die Vererbung der im Verzeichnis höher liegenden .htaccess-Datei nicht mehr. Es müssen also in dieser  neuen .htaccess-Datei alle Befehle erneut gesetzt werden!
    Bedenken Sie dies auch bei Skripten, die ggf. direkt über das globale Projekt (z.B. per Ajax) aufgerufen werden (Beispiel: Responsive Toggler-Navigation)!
  • Sofern innerhalb einer per HTTPS aufgerufenen Seite ein iFrame eingebunden ist, so muß auch die darüber aufgerufene Seite per HTTPS angesprochen werden. Ansonsten werden die per iFrame eingebundenen Inhalte nicht angezeigt.
  • Achten Sie in HTTPS-Seiten darauf, daß alle Inhalte des Projektes per HTTPS aufgerufen werden. Ansonsten kann es zu Zertifikats Warnmeldungen über die Browser-Adressleiste kommen.

Entwicklerbereich Weblication® CMS - © Scholl Communications AG