Versuchen Sie, diesen Code unter "RewriteEngine on" hinzuzufügen, und prüfen Sie, ob er funktioniert.
RewriteCond % 80 RewriteRule ^(.*)$ https://server.kibana/$1 [R=301,L]
Verwendung von Apache 2.4 unter OS X Yosemite. Benötigen Sie diese virtuellen Host ändern, um es umzuleiten http://server.kibana
und http://www.server.kibana
zuhttps://server.kibana
Hier ist der Vhost:
<VirtualHost *:8443> ServerName www.server.kibana ServerAlias server.kibana ServerAdmin admin@server.kibana # RedirectPermanent http://server.kibana https://server.kibana # DocumentRoot /usr/local/var/www/kibana-4.0.2-darwin-x64/src/public SSLEngine on SSLCertificateFile "/usr/local/etc/apache2/2.4/ssl-keys/server.crt" SSLCertificateKeyFile "/usr/local/etc/apache2/2.4/ssl-keys/server.key" # # Proxy # ProxyRequests Off <Proxy *> Order Allow,Deny Allow from all AuthType Basic AuthName "Authenticated proxy" AuthUserFile /usr/local/etc/apache2/2.4/elastic.htpwd Require valid-user </Proxy> ProxyPass / http://127.0.0.1:5601 ProxyPassReverse / http://127.0.0.1:5601 RewriteEngine on RewriteCond %/% !-f RewriteRule .* http://127.0.0.1:5601% [P,QSA] ErrorLog /usr/local/var/log/apache2/kibana_error.log LogLevel warn CustomLog /usr/local/var/log/apache2/kibana_access.log combined </VirtualHost>
Irgendwelche Vorschläge, was Sie hinzufügen oder wie Sie die RewriteRule und RewriteCond ändern müssen? Danke!
Versuchen Sie, diesen Code unter "RewriteEngine on" hinzuzufügen, und prüfen Sie, ob er funktioniert.
RewriteCond % 80 RewriteRule ^(.*)$ https://server.kibana/$1 [R=301,L]
Sie können dies verwenden und in die Domäne umschreiben, für die Ihr Zertifikat ausgestellt wurde:
RewriteCond % !=on [NC] RewriteRule ^(.*) https://www.example.com$1 [R=301,L]
Oder verwenden Sie diese Include-Datei, in der Sie SSL erzwingen möchten, während Sie den HTTP-Zugriff auf Teile des Servers aktivieren.
# Script to require SSL <If "% == 'on'"> SSLOptions +StrictRequire SSLRequireSSL </If> <Else> RedirectMatch permanent ^/?(.*) https://www.example.com/$1 </Else>
Sie könnten %
anstelle von verwenden www.example.com
. Dies funktioniert gut mit einem normalen Zertifikat.
RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L]
Die Variable %
enthält den Hostnamen aus der Anforderung und könnte anstelle von verwendet werden www.exaxmple.com
. Dies kann jedoch kein Hostname sein, der dem Zertifikat entspricht. Es funktioniert mit Zertifikaten mit mehreren Domänen.
RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L]
Durch Hinzufügen UseCanonicalName dns
zu Ihrer Konfiguration UseCanonicalName dns
wird das SERVER_NAME
von DNS bereitgestellt. Sie müssen jedoch sicherstellen, dass DNS die gewünschte Domäne bereitstellt. Wenn dies funktioniert, können Sie möglicherweise dieselbe Konfiguration für alle Server verwenden. Alternativ können Sie eine kleine serverspezifische Datei hinzufügen, um den Servernamen anzugeben.
Sie müssen verschiedene Ports auf HTTP und HTTPS überwachen. Testen Sie jeden, bevor Sie das Überschreiben aktivieren. Dies ist eine minimale Konfiguration für eine Site, die sowohl HTTP als auch HTTPS überwacht und alle Anforderungen an HTTPS umleitet. Die Umleitung benötigt einen Port, wenn nicht standardmäßige Ports verwendet werden. Diese Konfiguration setzt voraus, dass der Verzeichniszugriff außerhalb der Definition des virtuellen Hosts konfiguriert wird.
<VirtualHost *:80 *:443> ServerAdmin webmaster@systemajik.com DocumentRoot /var/www/ ServerName www.example.com ServerAlias example.com SSLEngine On SSLCipherSuite HIGH:MEDIUM SSLCertificateFile /etc/ssl/certs/www.example.com-cert.pem SSLCertificateKeyFile /etc/ssl/private/www.example.com-key.pem SSLCACertificatePath /etc/ssl/certs/ RewriteEngine On RewriteCond % !=on [NC] RewriteRule ^(.*) https://%$1 [R=301,L] </VirtualHost>